2012-09-21 19 views
1

我已經使用SQLBulkCopy從Excel表插入記錄到SQL。SQLBulk複製與觸發哪個火更新查詢

代碼對我來說運行良好。我不得不觸發基於插入的觸發器。

在觸發我在另一臺基於Inserted

也工作正常插入記錄。

但是,如果我正在檢查另一個表已經有記錄,我試圖插入和更新該記錄比這不適合我。

我該如何解決我的問題?

回答

1

使用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) 
+0

我已經試過了,但它不工作的感謝! –

+0

你得到了什麼錯誤? – AnandPhadke

+0

--------------------------- -------------------- ------- MERGE語句試圖多次更新或刪除同一行。當目標行匹配多個源行時會發生這種情況。 MERGE語句不能多次更新/刪除目標表的同一行。細化ON子句以確保目標行至多與一個源行匹配,或使用GROUP BY子句對源行進行分組。 --------------------------- OK ------------------- -------- –