【问题标题】:Empty SET statement (with no SET option assignments) is allowed允许空 SET 语句(没有 SET 选项分配)
【发布时间】:2019-10-24 12:08:57
【问题描述】:

关于 differences Between Compatibility Level 80 and Level 90 is telling on Compatibility Level 80 的 MS 文档,“允许空 SET 语句(没有 SET 选项分配)。” 什么是空 SET 语句(没有 SET 选项分配)? 请举例说明这一点?

【问题讨论】:

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


    【解决方案1】:

    这似乎是非常古老的行为,我发现的唯一内容来自一些德国人forum

    在 SQL Server 2000 中,SQL Server 2005 中已弃用的功能列表 与条目“Empty SET statement (with 不允许 SET 选项分配)。”和兼容性级别 90 带有“空 SET 子句”。不允许。 ”。

    但什么是 Empty 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 的意义和废话 选择语句。事实是 SQL Server 生成 2 个语句 (设置和选择)出来。没有赋值的 SET 语句是 SQL Server 2005 不再可能。

    只要不存在这样的东西,您就可以保存以更改兼容性级别。

    【讨论】:

      猜你喜欢
      • 2021-08-05
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2017-02-25
      • 2015-07-04
      • 1970-01-01
      相关资源
      最近更新 更多