varios utilizar uso update una tabla sintaxis registros insertar ejemplos ejecutar datos como comando actualizar sql sql-server-2005 insert

sql - utilizar - sintaxis de update



¿Cómo uso una cláusula OUTPUT de una instrucción INSERT para obtener el valor de identidad? (1)

Puede hacer que la ID recién insertada se envíe a la consola de SSMS de esta manera:

INSERT INTO MyTable(Name, Address, PhoneNo) OUTPUT INSERTED.ID VALUES (''Yatrix'', ''1234 Address Stuff'', ''1112223333'')

También puede usar esto desde, por ejemplo, C #, cuando necesita obtener el ID de nuevo en su aplicación de llamada; simplemente ejecute la consulta SQL con .ExecuteScalar() (en lugar de .ExecuteNonQuery() ) para volver a leer el ID resultante.

O si necesita capturar la nueva ID insertada dentro de T-SQL (por ejemplo, para un procesamiento posterior), necesita crear una variable de tabla:

DECLARE @OutputTbl TABLE (ID INT) INSERT INTO MyTable(Name, Address, PhoneNo) OUTPUT INSERTED.ID INTO @OutputTbl(ID) VALUES (''Yatrix'', ''1234 Address Stuff'', ''1112223333'')

De esta manera, puede poner múltiples valores en @OutputTbl y continuar procesándolos. También puede usar una tabla temporal "regular" ( #temp ) o incluso una tabla persistente "real" como su "objetivo de salida" aquí.

Si tengo una declaración de inserción como:

INSERT INTO MyTable ( Name, Address, PhoneNo ) VALUES ( ''Yatrix'', ''1234 Address Stuff'', ''1112223333'' )

¿Cómo configuro @var INT para el valor de identidad de la nueva fila (llamado Id ) usando la cláusula OUTPUT? He visto ejemplos de cómo poner INSERTED.Name en variables de tabla, por ejemplo, pero no puedo hacerlo en una variable que no sea de tabla.

He intentado OUPUT INSERTED.Id AS @var , SET @var = INSERTED.Id , pero ninguno ha funcionado.