1

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

将 IdentitySpecification 设置为 True的AutoID和具有默认值 (newid()) 的GuidKey

AutoID   GuidKey
1        f4rc-erdd
2        gedd-rrds

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

我需要 Scope_Identity() 之类的东西,不同之处在于我不想获取 AutoID 的内容,而是获取 GuidKey 列。

4

4 回答 4

5

Sql 服务器 2005/2008

INSERT INTO myTable (SomeColumn)
    OUTPUT INSERTED.GuidKEY
VALUES ('SomeData')
于 2009-12-20T14:20:20.420 回答
0

当然:

 SELECT GuidKEy FROM [Table] WHERE AutoID= scope_identity()
于 2009-12-20T14:13:42.230 回答
0

您可以执行以下操作:

DECLARE @TempTable TABLE (GuidKey UNIQUEIDENTIFIER)

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

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

于 2009-12-20T14:20:45.613 回答
0

对于uniqueidentifieri 执行以下操作:

DECLARE @ID uniqueidentifier
SET @ID = newId()

...

然后我@ID在我的插入语句中使用。最后我使用SELECT @ID或返回值RETURN @ID

于 2009-12-20T14:29:02.557 回答