martes, 29 de enero de 2019

179. Obtener el Id insertado en una tabla de SQL.

Para obtener el Identity con el que se ha insertado un valor en una tabla de una base de datos de SQL Server, existen 2 formas, una es por medio de @@Identity

select @@Identity

este nos va a dar la ultima clave de identidad que se inserto en la base de datos, pero no siempre es preciso, si se ejecuta un trigger por ejemplo y este genera clave de identidad, esta función  nos entregara la ultima identidad, es decir la del trigger, ademas de que si como consecuencia de la acción efectuada se modifico algo mas tenemos que hacer una segunda consulta para determinarlo.

Entonces ¿Como obtenemos los valores?

La respuesta es sencilla usando el parámetro Outout en el Insert, por ejemplo

insert into tabla1 OUTPUT Inserted.id values (xxx,xx1....)

Como pueden ver estamos pidiendo el valor del campo insertado Inserted.id

Esta función es muy util, por que en un update, por ejemplo podemos obtener el valor del cambo original y del campo que se actualizo, por ejemplo.

Update tabla1 set campo1 = 'xxxx' OUTPUT Deleted.campo1 as valor_original,Inserted.campo1 as valor_nuevo



Esta instrucción nos permite ver los valores de entrada y salida de una actualización



La mano invisible controla el mundo


No hay comentarios.:

Publicar un comentario