加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 错误消息中’SET’的含义’通过聚合或其他SET操作

发布时间:2020-12-12 06:15:13 所属栏目:MsSql教程 来源:网络整理
导读:我今天在运行同事的脚本时看到了上面的“ANSI警告”消息(我不知道哪些语句导致警告显示). 在过去,我忽略了它:我自己避免空白,所以任何能消除它们的东西在我的书中都是好事!然而,今天“SET”这个词字面上对我大喊大叫,我意识到我不知道这个词在这个背景下应
我今天在运行同事的脚本时看到了上面的“ANSI警告”消息(我不知道哪些语句导致警告显示).

在过去,我忽略了它:我自己避免空白,所以任何能消除它们的东西在我的书中都是好事!然而,今天“SET”这个词字面上对我大喊大叫,我意识到我不知道这个词在这个背景下应该是什么意思.

我的第一个想法,基于它是大写的事实,是它指的是SET关键字,意思是’赋值’,如在

UPDATE <table> SET ...

...ON DELETE SET NULL...

SET IDENTITY_INSERT <table> ON

根据SQL Server帮助,“ANSI警告”功能基于ISO / ANSI SQL-92,其规范仅在子节标题中使用术语“设置操作”,因此在标题情况下,在数据分配部分.但是,在快速搜索错误消息后,我看到的示例是SELECT查询,似乎没有涉及任务.

根据SQL Server警告的措辞,我的第二个想法是隐含了set的数学含义.但是,我不认为SQL中的聚合严格来说是一个集合操作.即使SQL Server团队认为它是一个集合操作,将’set’这个词放在大写字母中的目的是什么?

谷歌搜索时我发现了一条SQL Server错误消息:

Table 'T' does not have the identity property. Cannot perform SET operation.

在这里相同的情况下,“SET操作”的相同单词只能引用IDENTITY_INSERT属性的赋值,这让我回想起我的第一个想法.

任何人都可以解释这件事吗?

解决方法

我只是看着 the SQL-92 Specification,看到一段让我想起这个问题.

事实上,对于这种情况存在规定的警告,如下所示

b) Otherwise,let TX be the single-column table that is the
result of applying the <value expression> to each row of T
and eliminating null values. If one or more null values are
eliminated,then a completion condition is raised: warning-
null value eliminated in set function
.

我假设SQL Server错误消息中的SET是对该错误消息的set函数的引用,虽然我不确定为什么它会区分聚合和其他set函数,只要我可以看到它们是同义词.语法的相关部分如下.

6.5  <set function specification>

         Function

         Specify a value derived by the application of a function to an
         argument.

         Format

         <set function specification> ::=
                COUNT <left paren> <asterisk> <right paren>
              | <general set function>

         <general set function> ::=
                <set function type>
                    <left paren> [ <set quantifier> ] <value expression> <right paren>


         <set function type> ::=
              AVG | MAX | MIN | SUM | COUNT

         <set quantifier> ::= DISTINCT | ALL

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读