Sql server 2008 将数据插入包含2个PK的表时发生冲突

Sql server 2008 将数据插入包含2个PK的表时发生冲突,sql-server-2008,conflict,Sql Server 2008,Conflict,我有3个连接表,如下所示: 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); 当用户单击“添加”按钮时,从表单中向2个变量提供数据 但是

我有3个连接表,如下所示:

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);
当用户单击“添加”按钮时,从表单中向2个变量提供数据

但是当我调用存储过程时,遇到了以下问题: INSERT语句与外键约束“FK\U tutor\U module\U module”冲突。冲突发生在数据库“C:\USERS\DUCTRIEU\DESKTOP\DROPBOX\G20547222\APP\U DATA\G2054722DB.MDF”、表“dbo.module”、列“module\U id”中。 声明已被终止。”

谁能告诉我如何将数据插入这个表而不出错? 它们的数据格式是varchar(20)


非常感谢。

您试图为
模块id
插入一个在
模块
表中不存在的值,这就是外键的全部意义。这听起来很明显,但为了避免这个错误,您首先需要确保
tutor\u id
module\u id
的值分别存在于
tutor
module
表中

变量“@tutor\u id”包含从web表单发送的数据。变量“@module_id”包含从模块表中选择的数据。两个表Tutor和Module已经包含了它们自己的数据。@user2180317那么,在检索
@Module\u id
的值时出现了一个错误,因为它试图插入一个表
Module
上不存在的值,这就是错误的意思。您能修改您的语句以查看实际要插入的值吗?对不起。你是对的。模块表中模块标识的格式为BN0001,但我尝试插入/BN0001。非常感谢您抽出时间:)