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

2024-02-21

我正在分析存储过程中的一些旧 SQL 代码。

Declare @Var1 money, 
    @Var2 money, 
    @Var3 money, 

etc...

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

etc...

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

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

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

Thanks!


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

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

SELECT  @Var1, @Var2  

Returns

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

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

如果有多个赋值 单个 SELECT 语句中的子句, SQL Server 不保证 的评估顺序 表达式。请注意,效果是 仅当有引用时可见 作业之中。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL 中的链接变量赋值是如何工作的? 的相关文章

随机推荐