我有一个有两列的表:
CREATE TABLE MyTable(
Id int IDENTITY(1,1) NOT NULL,
Name nvarchar(100) NOT NULL);
我想使用 SELECT INSERT 语句复制数据:
INSERT INTO MyTable (Name)
SELECT Name FROM MyTable
这是棘手的部分 - 我想检索原始身份和新身份之间的映射表:
DECLARE @idsMap TABLE (OriginalId int, NewId int)
我知道我想使用OUTPUT 子句,但由于某种原因它不起作用:
INSERT INTO MyTable (Name)
OUTPUT t.Id, INSERTED.Id INTO @idsMap (OriginalId, NewId)
SELECT Name FROM MyTable t
-- Returns error The multi-part identifier "t.Id" could not be bound.