No hay equivalente de SCOPE_IDENTITY () cuando se usan GUID como claves principales, pero puede usar la cláusula OUTPUT para lograr un resultado similar. No es necesario utilizar una variable de tabla para la salida.
CREATE TABLE dbo.GuidTest (
GuidColumn uniqueidentifier NOT NULL DEFAULT NewSequentialID(),
IntColumn int NOT NULL
)
GO
INSERT INTO GuidTest(IntColumn)
OUTPUT inserted.GuidColumn
VALUES(1)
El ejemplo anterior es útil si desea leer el valor de un cliente .Net. Para leer el valor de .Net, simplemente use el método ExecuteScalar.
...
string sql = "INSERT INTO GuidTest(IntColumn) OUTPUT inserted.GuidColumn VALUES(1)";
SqlCommand cmd = new SqlCommand(sql, conn);
Guid guid = (Guid)cmd.ExecuteScalar();
...