有关differences Between Compatibility Level 80 and Level 90 is telling on Compatibility Level 80的MS文档,“允许使用空SET语句(不带SET选项分配)。” 什么是Empty SET语句(不分配SET选项)? 请举个例子澄清一下吗?
答案 0 :(得分:0)
这似乎是一种非常古老的行为,我发现的唯一发现是来自某个德语forum:
在SQL Server 2000中,SQL Server 2005中不推荐使用的功能的列表 与条目“ Empty SET语句(具有 不允许设置SET选项)。和兼容性级别90 使用“空SET子句”。不被允许。 “。
但是什么是空SET语句?
我的第一个想法是没有任何进一步分配的SET语句。 但是实际上这个想法对我来说太可疑了,因为 没有赋值的SET语句?
经过一些研究,我才发现了一些东西。实际上,有可能 SQL Server 2000只需将SET放入SP中-无需任何操作 分配。
也使用了一种有点奇怪的语法-不管是什么 原因:
DECLARE @CustomerId As nchar (5) SET SELECT @CustomerId = 'ALFKI' SELECT * FROM dbo.Customers WHERE CustomerId = @CustomerId
我什至不想考虑SET的意义和废话 SELECT语句。事实是,SQL Server生成2条语句 (设置并选择)。而没有赋值的SET语句是 SQL Server 2005不再可能。
一旦不存在这样的内容,您将被保存以更改兼容性级别。