Я хотел бы лучше понять различия для проверки уникальности в записи перед вставкой между использованием CHECKSUM (с уникальными ограничениями) против оператора самоссылающейся таблицы , как показано ниже , По каким сценариям один из вариантов будет лучшим выбором по сравнению с другим и по каким причинам?
Требование: Каждый набор столбцов должен быть уникальным для каждой записи в таблице, поэтому я собрал это утверждение; проверить все столбцы в одном обращении к базе данных.
INSERT INTO tblTable
(Column1, Column2, Column3, Column4, Column5, Column6)
SELECT
@Column1, @Column2, @Column3, @Column4, @Column5, @Column6
WHERE NOT EXISTS
(SELECT DISTINCT
t1.Column1,
t1.Column2,
t2.Column3,
t2.Column4,
t3.Column5,
t3.Column6
FROM tblTable t1
JOIN tblTable t2 ON (t1.UID = t2.UID)
JOIN tblTable t3 ON (t1.UID = t3.UID)
WHERE
t1.Column1 = @Column1 and
t1.Column2 = @Column2 and
t2.Column3 = @Column3 and
t2.Column4 = @Column4 and
t3.Column5 = @Column5 and
t3.Column6 = @Column6)