Вы предотвращаете дублирование строк, проверяя, что значение еще не существует.
Как правило, в хранилище данных вы перемещаете пакеты данных из одной таблицы в другую.
Давайте предположим, что у меня есть две таблицы с именами src и dst:
src (code,desc)
dst (code,desc)
Я хочу добавить строки из src в dst, только если код еще не существует в dst.
Типичным способом сделать это является предложение NOT EXISTS:
insert into dst
select s.code, s.dest
from src s
where not exists (
select 1
from dest d
where d.code = s.code);
Если вы хотите, чтобы комбинация кода и desc была уникальной, просто расширьте предложение WHERE:
insert into dst
select s.code, s.dest
from src s
where not exists (
select 1
from dest d
where d.code = s.code
and d.desc = s.desc);
Поскольку вы используете хранилище данных SQL Azure, есть вероятность, что вы захотите сделать это для кластерного индекса columnstore.Принять к сведению документацию о размерах партии.Если ваши партии небольшие, вы можете получить показатели плохого качества и плохую производительность.В этом случае используйте алгоритм CTAS для воссоздания измерения или используйте таблицу HEAP вместо CCI.
https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-best-practices#optimize-clustered-columnstore-tables