小编ype*_*eᵀᴹ的帖子

如何通过sql server中的链接服务器从链接服务器查询?

我有以下设置:

SQL-Server 1  --linked-->  SQL-Server 2  --linked->  SQL-Server 3
Run Code Online (Sandbox Code Playgroud)

问题是我可以通过 SQL Server 2 从 SQL Server 1 查询 SQL Server 3 吗?

不幸的是,我有几个限制:

  • 不能使用 openquery
  • 不能在服务器 2 上使用视图(会有很多视图,并且必须维护)
  • 无法创建从服务器 1 到服务器 3 的链接(由于防火墙问题)
  • 服务器是 MS SQL 服务器

sql-server linked-server

4
推荐指数
1
解决办法
2万
查看次数

两列一个外键

我有两张桌子,Results还有Teams

Teams 有以下列:

team_id
team_name
Run Code Online (Sandbox Code Playgroud)

Results 有以下列:

match_id
home_team (foreign key references teams [team_id])
away_team (foreign key references teams [team_id])
score
yellow_cards
red_cards
Run Code Online (Sandbox Code Playgroud)

当我写查询时:

select team_name, score 
FROM teams, results 
WHERE results.home_team = teams.team_id
  AND results.away_team = teams.team_id 
Run Code Online (Sandbox Code Playgroud)

它会给我空集。

我对同一个表中的两个不同列使用相同的外键这一事实是否有问题?

mysql foreign-key

4
推荐指数
1
解决办法
4270
查看次数

OLAP 或 OLATP - 如何确定

我有一个带有数据库的 SQL Express 服务器,该服务器由一个应用程序使用。我正在尝试优化数据库,但不确定数据库是 OLTP 还是 OLAP。

没有安装分析服务器,数据库在 SQL Server 实例内部,因此它应该是 OLTP,但是当我在数据库上运行读/写比率时,我有以下内容:

          Reads    Writes    Read%   Write %

DB file   400 000   75 000   85%     15%

DB log        250   30 000    1%     99%
Run Code Online (Sandbox Code Playgroud)

标准的 OLTP DB 应该有更多的读取而不是写入,对吧?这让我怀疑它可能是 OLAP DB。

我问这个关于超线程技术的使用、MAXDOP 设置以及是否将缓存配置为直写或回写等。

我使用的查询如下:

SELECT DB_NAME(DB_ID()) AS [Database Name] ,
[file_id] , num_of_reads , num_of_writes , num_of_bytes_read , num_of_bytes_written ,
CAST(100. * num_of_reads / ( num_of_reads + num_of_writes ) AS DECIMAL(10, 1)) AS [# Reads Pct] ,
CAST(100. * num_of_writes / ( num_of_reads …
Run Code Online (Sandbox Code Playgroud)

performance sql-server olap

4
推荐指数
2
解决办法
6318
查看次数

NOT IN(与连接一起)查询

我有两张桌子: PartOrderLine

Part (PartNum PK, PartDesc, Price)

OrderLine (OrderNum PK, PartNum PK, QtyOrdered)
Run Code Online (Sandbox Code Playgroud)

我想找出订购的零件。我想我有一个好主意,但我可能遗漏了一些东西;我认为最有可能在语法上。请检查:

select Part.PartNum
    ,OrderLine.OrderNum
from OrderLine
inner join Part on OrderLine.PartNum = Part.PartNum
where PartNum not in (
        select distinct (OrderNum)
        from OrderLine
        )
Run Code Online (Sandbox Code Playgroud)

这样对吗?

join sql-server t-sql sql-server-2014

4
推荐指数
1
解决办法
96
查看次数

与此时间戳一起使用的函数是什么?

我有时间戳(存储为 BIGINT)格式,我无法变成人类可读的格式:

1462975819250
Run Code Online (Sandbox Code Playgroud)

它指向 2016 年 5 月 11 日的日期。但是函数 to_timestamp() 将其转换为:

48329-11-10 13:00:49.999872+01
Run Code Online (Sandbox Code Playgroud)

我想创建一个可以显示这些值的 VIEW,不知道要使用什么函数。

该字段由 Java 程序(我认为是 EclipseLink)编写。我没有程序的源代码。

postgresql timestamp java

4
推荐指数
2
解决办法
540
查看次数

如何生成日期列表——即过去两年的每一天?

我们正在使用商业智能系统,需要加载日期列表,以便我们可以将它们标记为“上周”或“过去 12 个月”或某些动态值。

我想知道虚拟生成一个表的最简单方法是什么,该表仅在一列中列出日期,实际上是从“2014-01-01”到当前日期的每个日期(其他列我可以使用那里的公式)。实际上,甚至将未来的日期附加一年也可能很有用。

现在,是的,我可以从另一个具有数千个条目的随机事实表中获取不同的日期,但这似乎很草率,并且正在创建一种真正不应该存在的依赖关系。

sql-server t-sql view date

4
推荐指数
1
解决办法
5万
查看次数

带有模式匹配的 WHERE 子句以查找包含不在列表中的任何字符的行

我在 SQL Server 2008 环境中。

我试图在WHERE子句中使用模式匹配来查找特定列的值包含非字母数字、下划线、破折号、句点或空格字符的行。

这是我的代码和示例数据,但我没有得到预期的结果。

在示例数据中,我想返回第 7、8、9 和 12 行,但我得到的是第 5 行和第 6 行。

如果这不是实现目标的最佳方式,我愿意听取其他方法。

我不在可以实现正则表达式的环境中,因此我的解决方案仅限于开箱即用的功能。

CREATE TABLE PATTERN_TEST
(
ID INT NOT NULL,
STRING NVARCHAR(40) NOT NULL
)

INSERT INTO PATTERN_TEST
SELECT 1, 'string' UNION 
SELECT 2, 'STRING' UNION 
SELECT 3, 'string space' UNION 
SELECT 4, 'STRING SPACE' UNION 
SELECT 5, 'string-dash' UNION 
SELECT 6, 'string-dash space' UNION 
SELECT 7, 'string "otherchar"' UNION 
SELECT 8, 'string "other char"' UNION 
SELECT 9, '"string"' UNION 
SELECT 10, …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server

4
推荐指数
1
解决办法
7162
查看次数

用 where 子句计数

有没有办法在 COUNT 中有 WHERE 子句?或者如何用一些条款来计算?

select 
  a
  b,
  count(c where t1.u='UAE') as c1 
from t1 
Run Code Online (Sandbox Code Playgroud)

我正在使用 MS SQL Server 2014

sql-server count sql-server-2014 where

4
推荐指数
1
解决办法
9661
查看次数

SQL 触发器 - 更新计数

所以我需要创建一个触发器,为每个案例创建一个新的证据编号。例如,案例 #1 可以有证据 # 的 1、2、3、4 等等。案例 #2 也可以有证据 # 的 1、2、3 等。

所以我有一个“Case”表(CaseID 为 PK)和一个“Evidence”表(EvidenceNum 为 PK,CaseID 为 FK 和相关属性)

因此,每次我搜索特定的 caseID 时,我都希望填充一个新的“EvidenceID”列。例如证据项目#1、#2 等。所以这些数字可以在每种情况下重复。因此,为什么这不是主键。EvidenceNum 是主键,但最终用户不会看到它。有什么帮助吗??

trigger sql-server sql-server-2014

4
推荐指数
1
解决办法
443
查看次数

SSMS v17 是否允许用户在 Python 脚本中输入?

随着 SQL Server 2017 附带的 Python 功能的引入,我想知道是否有人能够使用 SSMS v17.x 并运行需要用户输入的 Python 脚本。这是一个示例基本脚本:

execute sp_execute_external_script  @language = N'Python', 
@script =N' print ("This is a PYTHON test")
userinput = int(input ("Enter LBs to convert to KG")) 
converted = userinput * 0.453592     
print (converted) '
Run Code Online (Sandbox Code Playgroud)

该脚本在 SSMS 中无休止地运行,而如果它只是一个打印语句;成功完成并产生打印结果。

我知道我可以使用像 Pycharm 这样的 Python IDE 控制台,但我想知道 SSMS 是否有这样的功能。我在互联网上的研究并没有那么富有成效。Python的大部分使用都与建模和分析有关。

sql-server ssms python sql-server-2017

4
推荐指数
1
解决办法
126
查看次数