Я работаю с Azure SQL Database (Microsoft SQL Azure (RTM) - 12.0.2000.8 от 5 декабря 2016 21:15:30), и я пытаюсь настроить таблицу (CHART), чтобы я не получил никаких дубликатов записей , Структура таблицы выглядит следующим образом:Как настроить/настроить таблицу, чтобы я не вводил повторяющиеся записи.
Chart_ID Primary Key (Identity Key)
Chart_Date Date
Chart_Code VarChar (This is a unique value)
Chart_Value Int
Я использую обновление или вставка, если новый запрос. В настоящее время таблица имеет следующую запись:
1, 2016-12-10, 12Dec10-00TAM00, 10
Если я Upsert следующую запись:
0, 2016-12-10, 12Dec10-00TAM00, 10 (Note I use a zero for the primary key so the database will assign the correct primary key)
База данных будет вставить новую запись с Chart_Id = 2, но я не хочу его к. Для меня это дубликат.
Я также провел небольшое исследование и нашел некоторую информацию об уникальных ограничениях.
Из того, что я нашел, что я считаю, что я мог бы сделать что-то вроде
Use TestDB;
Go
Alter Table CHART
ADD CONSTRAINT AK_UNIQUECHART_CODE UNIQUE (CHART_CODE);
Что лучшая практика для достижения цели без каких-либо повторяющихся записей.
Спасибо за ваш вклад.
Вещи, чтобы быть в курсе при использовании 'merge': [осмотрительность с' MERGE' Заявление в SQL Server - Aaron Bertrand] (http://www.mssqltips.com/sqlservertip/3074/use- caution-with-sql-servers-merge-statement /) и [Состояние гонки в UPSERT с объединением - sqlteam] (http://weblogs.sqlteam.com/dang/archive/2009/01/31/UPSERT-Race-Condition- With-MERGE.aspx) – SqlZim
Это действительно хороший момент, обычно MERGE лучше всего подходит для аналитических/отчетных систем. –