我有一個表叫data
的列ip, report_date, group, value
。主鍵是ip
,report_date
和group
在一起。SQL Server合併,如果存在,則更新其他插入
當表格爲空時,我運行下面的語句,沒有插入任何內容。我的發言有什麼問題?
如果有匹配的記錄是根據計劃更新...
MERGE bc_data2 AS Target
USING (SELECT ip, report_date, group, value FROM bc_data2 As b
WHERE b.ip = '1.1.1.2'
AND b.report_date = '2/29/2012'
AND b.group = 'EPO-Client-Update') AS Source
ON (Target.ip = Source.ip
AND Target.frequency = Source.frequency
AND Target.report_date = Source.report_date
AND Target.service = Source.service
AND Target.proxy_service = Source.proxy_service
AND Target.proxy = Source.proxy
AND Target.service_group = Source.service_group)
WHEN MATCHED THEN
UPDATE SET Target.value = Target.value + 1
WHEN NOT MATCHED BY Target THEN
INSERT (ip, report_date, group, value)
VALUES ('1.1.1.2', '2/29/2012', 'EPO-Client-Update', 119437142);
東西快速嘗試 - 冒了出來'BY Target'?你還在'TRY/CATCH'裏面做這個嗎? 'bc_data2'上是否有觸發器?也許有一個錯誤或有意的回滾,你沒有看到。 – 2012-03-15 13:00:53
我試圖直接在服務器管理工作室的聲明。刪除「按目標」沒有任何區別。 – Bas 2012-03-15 13:04:46