我的 SQL Server 表在其他列之间具有这些列。
将 IdentitySpecification 设置为 True的AutoID和具有默认值 (newid()) 的GuidKey
AutoID GuidKey
1 f4rc-erdd
2 gedd-rrds
有没有办法从插入的行中获取 GuidKey?
我需要 Scope_Identity() 之类的东西,不同之处在于我不想获取 AutoID 的内容,而是获取 GuidKey 列。
我的 SQL Server 表在其他列之间具有这些列。
将 IdentitySpecification 设置为 True的AutoID和具有默认值 (newid()) 的GuidKey
AutoID GuidKey
1 f4rc-erdd
2 gedd-rrds
有没有办法从插入的行中获取 GuidKey?
我需要 Scope_Identity() 之类的东西,不同之处在于我不想获取 AutoID 的内容,而是获取 GuidKey 列。
Sql 服务器 2005/2008
INSERT INTO myTable (SomeColumn)
OUTPUT INSERTED.GuidKEY
VALUES ('SomeData')
当然:
SELECT GuidKEy FROM [Table] WHERE AutoID= scope_identity()
您可以执行以下操作:
DECLARE @TempTable TABLE (GuidKey UNIQUEIDENTIFIER)
INSERT INTO YourTable(Columns)
OUTPUT INSERTED.GuidKey INTO @TempTable(GuidKey)
VALUES(YourVALUES)
这会将插入的 GuidKey 插入@TempTable。然后,您可以从该表中提取值。
对于uniqueidentifier
i 执行以下操作:
DECLARE @ID uniqueidentifier
SET @ID = newId()
...
然后我@ID
在我的插入语句中使用。最后我使用SELECT @ID
或返回值RETURN @ID