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

链接变量赋值如何在SQL中工作?

发布时间:2020-12-12 06:55:26 所属栏目:MsSql教程 来源:网络整理
导读:我正在分析存储过程中的一些旧SQL代码. Declare @Var1 money,@Var2 money,@Var3 money, 等等… Select @Var1 = OldValue,@Var2 = @Var1, 等等… 所以我想知道这些分配在同一个select语句中是如何工作的.在调用select之后,我假设Var2 = OldValue,但我想确定.
我正在分析存储过程中的一些旧SQL代码.
Declare @Var1 money,@Var2 money,@Var3 money,

等等…

Select @Var1 = OldValue,@Var2 = @Var1,

等等…

所以我想知道这些分配在同一个select语句中是如何工作的.在调用select之后,我假设Var2 = OldValue,但我想确定.

这种情况有哪些规则?分配是按照声明的顺序执行的吗?如果是这样,在以下情况下将为Var2分配什么值:

Select @Var2 = @Var1,@Var1 = OldValue,

谢谢!

解决方法

DECLARE @Var1 MONEY = 100,@Var2 MONEY = 50 

SELECT @Var1 = @Var2,@Var2 = @Var1 

SELECT  @Var1,@Var2

返回

--------------------- ---------------------
50.00                 50.00

所以在那种情况下,他们是按照从左到右的顺序执行的,但这不能依赖!

If there are multiple assignment
clauses in a single SELECT statement,
SQL Server does not guarantee the
order of evaluation of the
expressions. Note that effects are
only visible if there are references
among the assignments.

来源http://msdn.microsoft.com/en-us/library/ms187953.aspx

(编辑:李大同)

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

    推荐文章
      热点阅读