我有一個在tblCombined中設置的唯一索引。它按照cyDate,dtlNr和seq的順序依次設置。SQL Server 2005唯一索引插入來自不在其中的登臺表
我有另一個表 - 一個臨時表 - 稱爲tblDailyResults。它與tblCombined具有完全相同的字段,但沒有索引。我每天都會收到來自Feed的記錄。
我想要做的就是設置一個「catch」,如果你願意的話,那麼如果一個重複的記錄違反了唯一索引,它就不會出錯 - 相反,它不會被插入;它會保留在臨時表格中(然後我可以發出警告提示並從那裏管理它)。
這是我已經試過:
Insert Into tblCombined
(
cyDate
,dtlNr
,seq
,chCode
,opCode
,nrCode
)
Select
cyDate
,dtlNr
,seq
,chCode
,opCode
,nrCode
From tblDailyResults
Where Not Exists (Select cyDate ,dtlNr ,seq From tblCombined)
不過,這似乎並不奏效。我測試了一些記錄 - 從已經插入的字段中更改字段,並且它仍排除非重複記錄。我承認我是新使用「不存在」,所以也許我沒有正確使用它。
我也試過Where Not In,但似乎不適用於多列。
任何建議表示讚賞。謝謝!
請問你曾經不得不面對的情況是,一個特定的鍵在'tblCombined'中不存在,但是在'tblDailyRecords'中存在兩次(或更多)一次運行? –
這是可能的,是的。 – SeanFlynn