我有以下设置:
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 吗?
不幸的是,我有几个限制:
我有两张桌子,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)
它会给我空集。
我对同一个表中的两个不同列使用相同的外键这一事实是否有问题?
我有一个带有数据库的 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) 我有两张桌子: Part,OrderLine:
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)
这样对吗?
我有时间戳(存储为 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)编写。我没有程序的源代码。
我们正在使用商业智能系统,需要加载日期列表,以便我们可以将它们标记为“上周”或“过去 12 个月”或某些动态值。
我想知道虚拟生成一个表的最简单方法是什么,该表仅在一列中列出日期,实际上是从“2014-01-01”到当前日期的每个日期(其他列我可以使用那里的公式)。实际上,甚至将未来的日期附加一年也可能很有用。
现在,是的,我可以从另一个具有数千个条目的随机事实表中获取不同的日期,但这似乎很草率,并且正在创建一种真正不应该存在的依赖关系。
我在 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) 有没有办法在 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
所以我需要创建一个触发器,为每个案例创建一个新的证据编号。例如,案例 #1 可以有证据 # 的 1、2、3、4 等等。案例 #2 也可以有证据 # 的 1、2、3 等。
所以我有一个“Case”表(CaseID 为 PK)和一个“Evidence”表(EvidenceNum 为 PK,CaseID 为 FK 和相关属性)
因此,每次我搜索特定的 caseID 时,我都希望填充一个新的“EvidenceID”列。例如证据项目#1、#2 等。所以这些数字可以在每种情况下重复。因此,为什么这不是主键。EvidenceNum 是主键,但最终用户不会看到它。有什么帮助吗??
随着 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 ×8
t-sql ×2
count ×1
date ×1
foreign-key ×1
java ×1
join ×1
mysql ×1
olap ×1
performance ×1
postgresql ×1
python ×1
ssms ×1
timestamp ×1
trigger ×1
view ×1
where ×1