我的SQL Server表在这些列之间有其他列。
将IdentitySpecification设置为True的AutoID 和 GuidKey ,其默认值为(newid())
AutoID GuidKey
1 f4rc-erdd
2 gedd-rrds
有没有办法从插入的行中获取GuidKey?
我需要像Scope_Identity()这样的东西,区别在于我不想获得AutoID的内容,而是GuidKey列。
答案 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 @ID
或RETURN @ID