Vous pouvez utiliser la fonctionnalité OUTPUT pour renvoyer les valeurs par défaut dans un paramètre.
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
Je dois dire cependant, soyez prudent en utilisant un identifiant unique comme clé primaire. L'indexation sur un GUID est extrêmement médiocre car tout GUID nouvellement généré devra être inséré au milieu d'un index et rarement ajouté à la fin. Il existe une nouvelle fonctionnalité dans SQL2005 pour NewSequentialId(). Si l'obscurité n'est pas nécessaire avec vos Guids, c'est une alternative possible.