1

私のSQLServerテーブルには、他の列の間にこれらの列があります。

IdentitySpecificationがTrueに設定されているAutoIDと、デフォルト値が(newid())のGuidKey

AutoID   GuidKey
1        f4rc-erdd
2        gedd-rrds

挿入された行からGuidKeyを取得する方法はありますか?

Scope_Identity()のようなものが必要ですが、AutoIDのコンテンツは取得したくないが、GuidKey列は取得したいという違いがあります。

4

4 に答える 4

5

SQL Server 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

uniqueidentifier私は次のようにします:

DECLARE @ID uniqueidentifier
SET @ID = newId()

...

次に@ID、insert ステートメントで を使用します。SELECT @ID最後に、またはを使用して値を返しますRETURN @ID

于 2009-12-20T14:29:02.557 に答える