我有以下存储过程。

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())

07-24 09:38
查看更多