【发布时间】:2015-08-03 23:15:24
【问题描述】:
请参阅下面的 DDL:
CREATE TABLE #Test (ID INT NOT NULL IDENTITY, Name varchar(100), [Key] int, primary key (ID))
INSERT INTO #Test (Name, [Key]) values ('Ian',1)
INSERT INTO #Test (Name, [Key]) values ('Iain',1)
INSERT INTO #Test (Name, [Key]) values ('Eon',1)
INSERT INTO #Test (Name, [Key]) values ('Mark',2)
INSERT INTO #Test (Name, [Key]) values ('Steven',2)
以及下面的 DDL:
CREATE TABLE #Test2 (ID INT NOT NULL IDENTITY, Name varchar(100), primary key (ID))
INSERT INTO #Test2 (Name) values ('Graham')
INSERT INTO #Test2 (Name) values ('William')
INSERT INTO #Test2 (Name) values ('Neil')
INSERT INTO #Test2 (Name) values ('Calum')
INSERT INTO #Test2 (Name) values ('Wayne')
我想将#Test2 中的所有内容插入#Test。我希望#Test2 中的每条记录在#Test 中都有一个唯一的键。实际上,我希望这种情况发生:
INSERT INTO #Test (Name, [Key]) VALUES ('Graham', 3)
INSERT INTO #Test (Name, [Key]) VALUES ('William', 4)
INSERT INTO #Test (Name, [Key]) VALUES ('Calum', 5)
INSERT INTO #Test (Name, [Key]) VALUES ('Wayne', 6)
#Test 和#Test2 中有数百万条记录。
是否可以使用单个 SQL 语句完成所有 INSERTS,还是必须使用游标。
【问题讨论】:
标签: sql sql-server