我有以下存储过程。
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)
我想将范围变量插入@last_id_inserted。
基本上,我想将最后插入的ID(movie_id)插入到客户表中。
虽然不确定语法
最佳答案
您可以将函数的结果分配给变量。
SET @last_id_inserted = SCOPE_IDENTITY();
不需要
@last_id_inserted
作为参数。在SP中将其声明为变量。DECLARE @last_id_inserted int;
SET @last_id_inserted = SCOPE_IDENTITY();
或者,您可以直接在insert语句中使用它。
INSERT INTO customer (first_name,last_name,movie_id)
VALUES (@first_name,@last_name,SCOPE_IDENTITY())