SQL Server UPDATE的正确赋值次序演示


  本文标签:SQL Server UPDATE

  以下的文章主要向大家讲述的是SQL Server UPDATE的正确赋值次序,主要包括第一先先变量再字段,第二变量之间, 从左到右的运行,等相关内容的描述,以下就是正文的主要内容的详细介绍  。

  SQL Server UPDATE的赋值次序1 先变量再字段

  

  1. SET NOCOUNT ON;  
  2. DECLARE @i INT, @j INT  
  3. DECLARE @Table TABLE  
  4. (  
  5. Id1 INT,  
  6. Id2 INT  
  7. );  
  8. INSERT @Table(Id1, Id2)  
  9. SELECT 1, 10  
  10. UNION ALL  
  11. SELECT 2, 20  
  12. UNION ALL  
  13. SELECT 3, 30;  
  14. SELECT @i = 1, @j = 0 
  15. UPDATE @Table SET Id1 = @i, Id2 = Id1, @i = @i + 1  
  16. SELECT * FROM @Table  
  17. SELECT @i = 1, @j = 0 
  18. UPDATE @Table SET Id1 = @i, Id2 = @j, @j = @i + 10, @i = @i + 1  
  19. SELECT * FROM @Table  
  20. SET NOCOUNT OFF;  

  结果:

  1. Id1 Id2   
  2. 2 1  
  3. 3 2  
  4. 4 3  
  5. Id1 Id2   
  6. 2 11  
  7. 3 12  
  8. 4 13  

  SQL Server UPDATE的赋值次序2 变量之间, 从左到右

  

  1. SET NOCOUNT ON;  
  2. DECLARE @i INT, @j INT  
  3. DECLARE @Table TABLE  
  4. (  
  5. Id1 INT,  
  6. Id2 INT  
  7. );  
  8. INSERT @Table(Id1, Id2)  
  9. SELECT 1, 10;  
  10. SELECT @i = 1, @j = 0 
  11. UPDATE @Table SET @j = @i, @i = @i + 1  
  12. PRINT @i =  + CAST(@i AS VARCHAR) + , @j =  + CAST(@j AS VARCHAR)  
  13. SELECT @i = 1, @j = 0 
  14. UPDATE @Table SET @i = @i + 1, @j = @i  
  15. PRINT @i =  + CAST(@i AS VARCHAR) + , @j =  + CAST(@j AS VARCHAR)  
  16. SELECT @i = 1, @j = 0 
  17. UPDATE @Table SET @i = @j + 1, @j = @i  
  18. PRINT @i =  + CAST(@i AS VARCHAR) + , @j =  + CAST(@j AS VARCHAR)  
  19. SELECT @i = 1, @j = 0 
  20. UPDATE @Table SET @i = @j, @j = @i  
  21. PRINT @i =  + CAST(@i AS VARCHAR) + , @j =  + CAST(@j AS VARCHAR)  
  22. SET NOCOUNT OFF;  

  结果:

  1. @i = 2, @j = 1 
  2. @i = 2, @j = 2 
  3. @i = 1, @j = 1 
  4. @i = 0, @j = 0 

  SQL Server UPDATE的赋值次序3 字段之间, 并行执行

  

  1. SET NOCOUNT ON;  
  2. DECLARE @Table TABLE  
  3. (  
  4. Id1 INT, Id2 INT  
  5. );  
  6. INSERT @Table(Id1, Id2)  
  7. SELECT 1, 10  
  8. UNION ALL  
  9. SELECT 2, 20  
  10. UNION ALL  
  11. SELECT 3, 30;  
  12. UPDATE @Table SET Id1 = Id2Id2 = Id1 
  13. SELECT * FROM @Table  
  14. SET NOCOUNT OFF;  

  结果:

 

  1. Id1 Id2    
  2. 10 1  
  3. 20 2  
  4. 30 3  

  以上的相关内容就是对SQL Server UPDATE的赋值次序的介绍,望你能有所收获  。