OUTPUT機能を使用して、デフォルト値をパラメーターに戻すことができます。
CREATE TABLE MyTable
(
MyPK UNIQUEIDENTIFIER DEFAULT NEWID(),
MyColumn1 NVARCHAR(100),
MyColumn2 NVARCHAR(100)
)
DECLARE @myNewPKTable TABLE (myNewPK UNIQUEIDENTIFIER)
INSERT INTO
MyTable
(
MyColumn1,
MyColumn2
)
OUTPUT INSERTED.MyPK INTO @myNewPKTable
VALUES
(
'MyValue1',
'MyValue2'
)
SELECT * FROM @myNewPKTable
ただし、主キーとして一意の識別子を使用する場合は注意が必要です。 GUIDでのインデックス作成は、新しく生成されたGUIDをインデックスの中央に挿入し、最後に追加する必要があるため、パフォーマンスが非常に低くなります。 NewSequentialId()用のSQL2005の新機能があります。 GUIDにあいまいさが必要ない場合は、代替案として考えられます。