允许使用空SET语句(不分配SET选项)

时间:2019-06-10 04:24:22

标签: sql sql-server sql-server-2005

有关differences Between Compatibility Level 80 and Level 90 is telling on Compatibility Level 80的MS文档,“允许使用空SET语句(不带SET选项分配)。” 什么是Empty SET语句(不分配SET选项)? 请举个例子澄清一下吗?

1 个答案:

答案 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不再可能。

一旦不存在这样的内容,您将被保存以更改兼容性级别。