【发布时间】:2015-06-07 13:28:58
【问题描述】:
我需要一些有关 SQL Server 合并语句的帮助。我使用的是 2008 版。
我有两个表 table1 和 table2,每个表中有 3 列:姓名、年龄、姓氏。
我想做从 table2 到 table1 的 Upsert 的小变种。如果表 1 中存在记录,则忽略。如果不存在则插入。
我知道以下会起作用 -
merge into [test].[dbo].[table1] a
using [test].[dbo].[table2] b
on a.name = b.name and a.lastname = b.lastname
when not matched then
insert (name, age, lastname) values (b.name, b.age, b.lastname)
我想知道我是否可以做这样的事情?目前以下不起作用:
merge into [test].[dbo].[table1] a
using [test].[dbo].[table2] b
on a.name = b.name and a.lastname = b.lastname
when not matched then
insert (select name, max(age), lastname from b group by name, lastname)
基本上我只想将表 2 中的“唯一记录”插入表 1。唯一意味着姓名和姓氏应该相同。
谢谢。
【问题讨论】:
标签: sql sql-server database merge upsert