我有以下存储过程,我在这里有两个表,Movie和Director。在创建或添加新电影时都需要更新。你如何处理存储过程中的FK?在这种情况下的FK是director_id
。它是Director
中的主键,但是Movie
中的FK需要像这样指定两次吗?我收到冲突错误存储过程中的外键约束 - SQL Server
CREATE PROCEDURE Book_Book_Creation
@Book_id_arg DECIMAL(12),
@author_id_arg DECIMAL(12),
@type_id_arg DECIMAL(12),
@title_arg VARCHAR(64), -
@copyright_arg DECIMAL(4),
@dauthor_id_2_arg DECIMAL(12),
@author_fname_arg VARCHAR (64),
@author_lname_arg VARCHAR (64)
AS
BEGIN
INSERT INTO Book(Book_id, author_id,genre_id, title, copyright)
VALUES (@author_arg, @author_id_arg, @type_id_arg, @title_arg, @copyright_arg);
INSERT INTO Author(author_id, author_fname, author_lname)
VALUES (@director_id_2_arg, @director_fname_arg, @director_lname_arg)
END;
EXECUTE Book_Book_Creation 32,32,1,'Tempting',2013,32,'Taylor','Mendez';
在这种情况下,你需要先插入导演,然后取它的新的'选择@NewDirectorID = SCOPE_IDENTITY()',然后插入值到影片表中生成与新董事的ID – 2013-04-23 05:12:09