1
我已經使用SQLBulkCopy
從Excel表插入記錄到SQL。SQLBulk複製與觸發哪個火更新查詢
代碼對我來說運行良好。我不得不觸發基於插入的觸發器。
在觸發我在另一臺基於Inserted
也工作正常插入記錄。
但是,如果我正在檢查另一個表已經有記錄,我試圖插入和更新該記錄比這不適合我。
我該如何解決我的問題?
我已經使用SQLBulkCopy
從Excel表插入記錄到SQL。SQLBulk複製與觸發哪個火更新查詢
代碼對我來說運行良好。我不得不觸發基於插入的觸發器。
在觸發我在另一臺基於Inserted
也工作正常插入記錄。
但是,如果我正在檢查另一個表已經有記錄,我試圖插入和更新該記錄比這不適合我。
我該如何解決我的問題?
使用MERGE語句在你的觸發,如果你使用的是SQL Server 2008的
例子:
MERGE INTO dbo.Table1 AS t
USING dbo.inserted AS i
ON t.id= i.id
WHEN MATCHED THEN
UPDATE SET
t.col1= i.col1,
t.col2= i.col2
WHEN NOT MATCHED THEN
INSERT (col1, col2)
VALUES (i.col1, i.col2)
我已經試過了,但它不工作的感謝! –
你得到了什麼錯誤? – AnandPhadke
--------------------------- -------------------- ------- MERGE語句試圖多次更新或刪除同一行。當目標行匹配多個源行時會發生這種情況。 MERGE語句不能多次更新/刪除目標表的同一行。細化ON子句以確保目標行至多與一個源行匹配,或使用GROUP BY子句對源行進行分組。 --------------------------- OK ------------------- -------- –