回答

收藏

链接变量分布在SQL如何工作?

技术问答 技术问答 189 人阅读 | 0 人回复 | 2023-09-14

我正在分析中,我正在分析一些旧的SQL代码。
8 u5 u* ^" g+ A- C9 o! U' kDeclare @Var1 money,    @Var2 money,    @Var3 money,等等…# f2 K4 o  j8 w: J  }; k
Select @Var1 = OldValue,       @Var2 = @Var1,等等…
* Q" M* Y2 u3 o. F( T所以我想知道,当它们都在一起的时候select这些赋值在句子中是如何工作的。我假设我在调用select之后,Var2 = OldValue,但我想确定。+ w) p" v' u4 S; s9 D& I
在这种情况下有哪些规则?分配是否按照声明的顺序执行?如果是这样,将在以下情况下进行Var2分配什么值:9 v" \2 P+ O5 J- ~
Select @Var2 = @Var       @Var1 = OldValue,谢谢!
$ `9 K8 Y% i5 X                                                               
( U" X" t/ X7 c- z    解决方案:                                                               
0 u6 ?2 B# |  t  y; e. W                                                                DECLARE @Var1 MONEY = 100,@Var2 MONEY = 50SELECT @Var1 = @Var二、        @Var2 = @Var1SELECT  @Var1,@Var2退货" g( Q& n+ i  z8 w, d8 t; E
--------------------- ---------------------50.00                 50.00因此,在这种情况下,它们从左到右执行,但这    不能依靠!
/ {0 i4 \0 @& v' |6 B$ f$ B5 Y# n如果单个SELECT句子中有多个赋值子句,则SQL Server不保证表达式的求值顺序。请注意,只有在分配之间引用时才能看到效果。" O/ n8 q3 }, i) n  p+ A
来源http://msdn.microsoft.com/en-" ?8 |* d, Z5 A" W- w7 @
us/library/ms187953.aspx
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则