我創建了一個存儲過程在一個數據庫一樣插入或更新EM表插入或更新存儲過程
ALTER PROCEDURE [dbo].[uspInsertorUpdateArchibusINF]
@em_TT AS em_TT READONLY
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION;
UPDATE e
SET e.dp_id = t.dp_id,
e.dv_id = t.dv_id,
e.email = t.email,
e.emergency_relation = t.emergency_relation,
e.name_first = t.name_first,
e.name_last = t.name_last,
e.option1 = t.option1,
e.status = t.status,
e.em_title = t.em_title,
e.date_hired = t.date_hired
FROM [dbo].[em] e
INNER JOIN @em_TT t ON e.em_id = t.em_id
INSERT INTO [dbo].[em](dp_id, dv_id, email, emergency_relation, name_first,name_last
, option1, status, em_id, em_title,date_hired)
SELECT t.dp_id, t.dv_id, t.email
, t.emergency_relation,t.name_first,t.name_last, t.option1, t.status
, t.em_id, t.em_title, t.date_hired
FROM @em_TT t
WHERE NOT EXISTS (SELECT 1
FROM [dbo].[em]
WHERE em_id = t.em_id)
COMMIT TRANSACTION;
END;
凡DP_ID和dv_id在EM表是從表中的dv和DP的外鍵。所以現在我嘗試插入一些新值到em表中,它會拋出錯誤,如 INSERT語句與FOREIGN KEY約束「em_dp_id」衝突。數據庫「j20」發生衝突,表「dbo.dp」。
不,我不知道如果我可以修改上面的存儲過程te插入,如果有新的dp_id或dv_id在各自的表。或者我必須單獨創建它。任何幫助非常感謝