SQL中 将同一个表中的A列更新到B列,B列更新到A列

时间:2022-09-23 10:01:02
原文: SQL中 将同一个表中的A列更新到B列,B列更新到A列

有网友在SKYPE问及,如标题,SQL中 将同一个表中的A列更新到B列,B列更新到A列。

SQL中 将同一个表中的A列更新到B列,B列更新到A列


其实这个不是问题,直接写更新语句即可,可以参考下面动画演示:
SQL中 将同一个表中的A列更新到B列,B列更新到A列

SQL source code:

SQL中 将同一个表中的A列更新到B列,B列更新到A列SQL中 将同一个表中的A列更新到B列,B列更新到A列
CREATE TABLE [dbo].[tbl]
(
    [id] INT,
    [a]  NVARCHAR(10),
    [b] NVARCHAR(10)
)
INSERT INTO [dbo].[tbl] VALUES (1,'123','456')

SELECT [id],[a],[b] FROM [dbo].[tbl]

UPDATE [dbo].[tbl] SET [a] = [b], [b] = [a] WHERE [id] = 1

SELECT [id],[a],[b] FROM [dbo].[tbl]
View Code


 明白为什么可以这样,应该先明白SQL的更新时,会先把更新所有行的每一列原始值放在一个deleted表中,更新的值会放在一个 inserted表中。