防止SQL Server数据库中重复记录的最佳方法是什么

Sha*_*ana 1 c# sql sql-server-2008

什么是防止SQL Server数据库中重复记录的最佳方法?使用触发器?使用唯一约束?

Ife*_*kwu 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)
)
Run Code Online (Sandbox Code Playgroud)

更改现有表格如下

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
Run Code Online (Sandbox Code Playgroud)

如果您使用前端应用程序填充数据库中的表.从数据库中的应用程序进行验证选择查询,以在插入数据库之前检查重复项.使用约束可以通过抛出异常来防止重复.

注意:上面的例子是SQL SERVER,Oracle,ms访问

有关更深入的解决方案,请参阅如何在没有主键时防止使用SqlBulkCopy插入重复记录