2015-05-05 4 views
0

Что такое лучший способ предотвратить дублирование записей в базе данных SQL Server? Использование триггеров? Использование уникального ограничения?Каков наилучший способ предотвратить дублирование записей в базе данных SQL Server

+4

Используйте уникальный индекс или ограничение –

+0

вы получите тысячи ответов, если Google это! – Vikrant

+0

Как правило * *, я бы рекомендовал использовать функции, которые разработаны и предназначены для конкретного использования, вместо использования триггеров. Используйте только триггеры, если другие функции DRI не могут достичь ваших общих целей. –

ответ

6

Используйте уникальные ограничения для одного или нескольких столбцов в таблице. Пример:

CREATE TABLE Persons 
(
P_Id int NOT NULL UNIQUE, 
LastName varchar(255) NOT NULL UNIQUE, 
FirstName varchar(255) NOT NULL UNIQUE, 
Address varchar(255), 
City varchar(255) 
) 

Alter существующей таблица, как показано ниже

ALTER TABLE Persons 
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName) 

Если вы используете фронтальное приложение для заполнения таблицы в базе данных. Сделайте свою проверку, выберите запрос из приложения в базе данных, чтобы проверить наличие дубликатов перед вставкой в ​​базу данных. Использование ограничений предотвратит дублирование путем исключения исключения.

Примечания: В приведенном выше примере SQL Server, Oracle, MS Access

Для более углубленного решения см How to prevent duplicate records being inserted with SqlBulkCopy when there is no primary key

+0

@Chukwu не могли бы вы дать мне пример. благодаря – Shana

Смежные вопросы