Dmi*_*iyd 2 sql sql-server asp.net stored-procedures
我有以下存储过程.
ALTER PROCEDURE dbo.insert_movie
(
@first_name varchar(50),
@movie_name varchar(50),
@date date,
@last_id_inserted int,
@last_name varchar(50)
)
AS
INSERT INTO movies (movie_name,movie_date) VALUES (@movie_name,@date);
SELECT SCOPE_IDENTITY() AS scope;
INSERT INTO customer (first_name,last_name,movie_id)
VALUES (@first_name,@last_name,@last_id_inserted)
Run Code Online (Sandbox Code Playgroud)
我想将范围变量插入@last_id_inserted.
基本上,我想将最后插入的id(movie_id)插入到customer表中.
虽然不确定语法
您可以将函数的结果分配给变量.
SET @last_id_inserted = SCOPE_IDENTITY();
Run Code Online (Sandbox Code Playgroud)
没有必要@last_id_inserted作为参数.将其声明为SP中的变量.
DECLARE @last_id_inserted int;
SET @last_id_inserted = SCOPE_IDENTITY();
Run Code Online (Sandbox Code Playgroud)
或者您可以直接在insert语句中使用它.
INSERT INTO customer (first_name,last_name,movie_id)
VALUES (@first_name,@last_name,SCOPE_IDENTITY())
Run Code Online (Sandbox Code Playgroud)
SELECT @last_id_inserted = SCOPE_IDENTITY()
or
SET @last_id_inserted = SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)