2013-03-19 69 views
0

我有连接如下3个表:冲突包含2 PK

http://imageshack.us/photo/my-images/7/41645335.jpg/ 

和我的存储过程将数据输入到这个表如下:

@tutor_id as varchar(20), 
@module_id as varchar(20) 


INSERT INTO tutor_module(tutor_id, module_id) VALUES(@tutor_id, @module_id); 

从用户点击按钮“ADD”时提供的数据提供给2个变量的数据

但是当我调用存储过程时,遇到了这个问题: “The INSERT st与FOREIGN KEY约束“FK_tutor_module_module”冲突。数据库“C:\ USERS \ DUCTRIEU \ DESKTOP \ DROPBOX \ G20547722 \ APP_DATA \ G20547722DB.MDF”中出现冲突,表“dbo.module”,列'module_id'。 该语句已终止。”

任何一个可以请让我知道如何将数据插入到这个表不犯错误? 为他们的数据格式是VARCHAR(20)。

非常感谢你。

回答

0

您正在尝试插入module_id的值,该值在module表中不存在,这就是外键的全部点,这听起来很明显,但为了避免这种错误,您首先需要确保tutor_idmodule_id的值存在于tutor和d module表分别为

+0

变量“@tutor_id”包含从Web表单发送的数据。 变量“@module_id”包含从模块表中选择的数据。而Tutor和Module这两个表格已经包含了他们自己的数据。 – nghich1 2013-03-19 13:38:14

+0

@ user2180317那么,在检索'@ module_id'的值时会出错,因为它试图插入表'module'中不存在的值,这就是错误所说的。你可以修改你的语句来查看实际尝试插入的值吗? – Lamak 2013-03-19 13:42:57

+0

我很抱歉。你是对的。模块表中module_id的格式是BN0001,但我尝试插入/ BN0001。 – nghich1 2013-03-19 13:49:03