SQL Server:如何获取插入的行的值?

时间:2009-12-20 14:10:39

标签: sql sql-server tsql scope-identity

我的SQL Server表在这些列之间有其他列。

将IdentitySpecification设置为True的

AutoID GuidKey ,其默认值为(newid())

AutoID   GuidKey
1        f4rc-erdd
2        gedd-rrds

有没有办法从插入的行中获取GuidKey?

我需要像Scope_Identity()这样的东西,区别在于我不想获得AutoID的内容,而是GuidKey列。

4 个答案:

答案 0 :(得分:5)

Sql Server 2005/2008

INSERT INTO myTable (SomeColumn)
    OUTPUT INSERTED.GuidKEY
VALUES ('SomeData')

答案 1 :(得分:0)

不确定

 SELECT GuidKEy FROM [Table] WHERE AutoID= scope_identity()

答案 2 :(得分:0)

您可以执行以下操作:

DECLARE @TempTable TABLE (GuidKey UNIQUEIDENTIFIER)

INSERT INTO YourTable(Columns) 
  OUTPUT INSERTED.GuidKey INTO @TempTable(GuidKey) 
  VALUES(YourVALUES)

这会将插入的GuidKey插入@TempTable。然后,您可以从该表中提取值。

答案 3 :(得分:0)

对于uniqueidentifier我做如下:

DECLARE @ID uniqueidentifier
SET @ID = newId()

...

然后我在insert语句中使用@ID。最后,我使用SELECT @IDRETURN @ID

返回值