У меня есть оператор SQL, который я хотел бы изменить.Сейчас у меня простой SELECT INTO, но я хотел бы изменить его так, чтобы добавлялись только записи, которых нет в таблице назначения (как определено моими критериями).Начальное утверждение:
SELECT b.BallotID, m.MeetingDate
INTO StagingTable
FROM Ballot INNER JOIN Meeting on b.MeetingID = m.MeetingID
WHERE b.LastModifiedDate < '01-01-2010' AND ( b.BallotType = 'Agenda Vote' AND m.MeetingDate < GETDATE())
Я хотел бы изменить положение вещей так, чтобы StagingTable заполнялся только тогда, когда бюллетень еще не существует.Это приемлемый способ или есть лучшие альтернативы?
SELECT b.BallotID, m.MeetingDate
INTO StagingTable
FROM Ballot INNER JOIN Meeting on b.MeetingID = m.MeetingID
WHERE b.LastModifiedDate < '01-01-2010' AND ( b.BallotType = 'Agenda Vote' AND m.MeetingDate < GETDATE())
AND NOT EXISTS(SELECT 1 from StagingTable where BallotID = b.BallotID)) )