È possibile utilizzare la funzionalità OUTPUT per restituire i valori predefiniti in un parametro.
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
Devo dire però, fai attenzione a usare un identificatore univoco come chiave primaria. L'indicizzazione su un GUID ha prestazioni estremamente scarse poiché eventuali GUID appena generati dovranno essere inseriti nel mezzo di un indice e raramente aggiunti alla fine. C'è una nuova funzionalità in SQL2005 per NewSequentialId(). Se l'oscurità non è richiesta con i tuoi Guid, è una possibile alternativa.