Requisitos: Un procedimiento almacenado, necesitamos insertar un dato en las tablas A y B, donde la relación principal de clave externa entre la tabla A y la tabla B, las columnas asociadas a la tabla B son las claves primarias de la tabla A, necesitamos insertar el valor de clave primaria de la tabla A después de completar la inserción, obtener el valor clave primario de la tabla A y luego insertar los datos en la tabla B.
Después de insertar un registro, quieres obtener el valor de retorno de la clave primaria en su hoja de datos inmediatamente. Esta clave primaria se genera automáticamente.
Primero, crea una tabla temporal para probar, el código es el siguiente:
@@IDENTITY
Tras completar una instrucción INSERT, SELECT IN o copia masiva, el @@IDENTITY contiene el último valor de identificación producido por esta sentencia. Si esta sentencia no afecta a ninguna tabla con columnas identificadas, @@IDENTITY devuelve NULL. Si se insertan varias filas, se generan varios valores identificadores @@IDENTITY se devuelve el último valor identificador. Si esta sentencia activa uno o más disparadores que realizan una operación de inserción que produce un valor identificado, llamar a @@IDENTITY inmediatamente después de la ejecución de la sentencia devolverá el último valor de identificación generado por el disparador. Si falla la instrucción INSERT o SELECT INTO o falla la replicación masiva, o si la transacción se revierte, el valor de @@IDENTITY no se restaura a sus configuraciones anteriores.
SALIDA INSERTADA
Para INSERT, puedes consultar la tabla insertada para consultar las propiedades de la nueva fila
El código de prueba es el siguiente:
El efecto es el siguiente:
|