根据具有名称列名称的另一个表,更新表中100列行的SQL

Oje*_*jen 2 sql sql-server sql-update

表中的一行被错误地覆盖了.我有一个表的备份,需要使用备份数据更新主表中的单行.问题是该表有近100列.有没有一种简单的方法在SQL Server中执行此操作,以便我不必手动写出:

set maintable.a = backuptable.a, 
    maintable.b = backuptable.b,......etc.
Run Code Online (Sandbox Code Playgroud)

一直到第100列.我认为SQL Server Management Studio可以知道我想要更新另一个表中具有相同命名字段的字段.有没有办法做到这一点?

提前致谢.

JNK*_*JNK 5

INSERT INTO MainTable
SELECT *
FROM BackUpTable
WHERE RowID = GoodRow

DELETE FROM MainTable
WHERE RowId = BadRow
Run Code Online (Sandbox Code Playgroud)

只需插入"好"行并删除"坏"行.

如果存在PK约束,则可以按相反的顺序删除/插入.

把它包含在一个中也是明智之举TRANSACTION.