首页 > 技术文章 > UPDATE从左向右,变量优先,逐行更新.顺序执行的,可以交换两列之间的值

wwxbi 2014-12-01 23:11 原文

 

CREATE TABLE tab_update (id TINYINT,n1 NVARCHAR(30),v1 NVARCHAR(30),s1 NVARCHAR(30))

 

INSERT INTO tab_update (id,n1,v1,s1)

SELECT 1,'天','土豆','章子怡'

UNION ALL

SELECT 2,'集团','黄瓜','汪峰'

UNION ALL

SELECT 3,'宇宙','茄子','杰克隽逸'

UNION ALL

SELECT 4,'海洋','西红柿','刘德华'

UNION ALL

SELECT 5,'大学','莲藕','凤凰传奇'

 

SELECT * FROM tab_update

 

DECLARE @var NVARCHAR(30)

UPDATE tab_update

SET

         @var=n1,   --传递值交换

         n1 = v1,

         v1 = s1,

         s1 = @var

        

SELECT * FROM tab_update

 

DROP TABLE tab_update

 

                       

推荐阅读