如何在插入时从输出子句插入唯一ID之前和之后获取?
例如:我有一个名为A的表,我需要通过
复制一些记录我需要使用
将旧的唯一ID和新的唯一ID添加到临时表中这意味着我需要在插入唯一标识符之前将返回类型设置为,并在惰性唯一标识符之后输入。为此,我尝试使用以下查询
DECLARE @MyTableVar TABLE
(
newid UNIQUEIDENTIFIER,
oldid UNIQUEIDENTIFIER
);
INSERT A (name, description)
output inserted.guid,
d.guid
INTO @MyTableVar
SELECT name, description
FROM A d
WHERE deptID = 550;
SELECT *
FROM @MyTableVar
但我无法在输出子句中获得 d.guid 。如果在插入唯一ID作为输出之前和之后有任何其他选项,请更正我。
答案 0 :(得分:0)
您可以使用
@@IDENTITY
获取插入唯一ID作为输出。
答案 1 :(得分:0)
您应该使用表中的列名。在您的情况下,您使用的是Inserted.Guid,这会导致语法错误
create table tt
(
id varchar(300) default newid()
)
declare @t table
(
id varchar(300)
)
insert into tt
output inserted.* into @t
default values
select * from @t