我正在使用SQL Server 2012,并且具有两个结构相同的表。如果表2中还不存在新记录,我想将它们从表1插入表2。
如果它们已经存在,那么我想更新表2中的所有现有记录。
我的表中有大约30列,我想更新所有这些列。
有人可以帮忙吗?我查看了通过互联网发布的各种链接,但完全不了解我的声明的外观。
真的不那么难....
你需要:
因此,基本上,它类似于:
-- this is your TARGET table - this is where the data goes into MERGE dbo.SomeTable AS target -- this is your SOURCE table where the data comes from USING dbo.AnotherTable AS source -- this is the CONDITION they have to "meet" on ON (target.SomeColumn = source.AnotherColumn) -- if there's a match, so if that row already exists in the target table, -- then just UPDATE whatever columns in the existing row you want to update WHEN MATCHED THEN UPDATE SET Name = source.Name, OtherCol = source.SomeCol -- if there's NO match, that is the row in the SOURCE does *NOT* exist in the TARGET yet, -- then typically INSERT the new row with whichever columns you're interested in WHEN NOT MATCHED THEN INSERT (Col1, Col2, ...., ColN) VALUES (source.Val1, source.Val2, ...., source.ValN);