2013-03-19 64 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