在專案程式撰寫中,突然發現有一段預存程式怪怪的,因為他所產生出來的Exection 應該是不會發生的,但是卻出現了。程式是像這樣的 CREATE PROCEDURE UPDATE_TABLE1 @ParamKey VARCHAR(10) ,@ParamValue VARCHAR(20) ,@ParamDate DATETIME AS BEGIN --更新TABLE1 UPDATE TABLE1 SET ColumnValue = @ParamValue ,ColumnDate = @ParamDate WHERE ColumnKey = @ParamKey --產生一串字 DECLARE @VarText VARCHAR(20) SET @VarText = '這是示範資料' + ColumnValue --前面的執行程序有影響1筆(含)以上的資料 --再新增資料到TABLE2 IF @@ROWCOUNT > 0 INSERT INTO TABLE2 (ColumnKey, ColumnText) VALUES (@ParamKey, @VarText) END 乍看之下好像沒什麼不對,但執行時卻會發生Excetion [INSERT 陳述式與 FOREIGN KEY 條件約束 "FK_TABLE2_ColumnKey" 衝突。衝突發生在資料庫 "DBTest",資料表 "dbo.TABLE1", column 'ColumnKey'。] ,其實這段語法隱藏了一個陷阱…