如何确保不将相同的值插入数据库?

时间:2012-06-12 22:32:31

标签: sql-server-2008 constraints

我有一个PK = BookId的表和另一个非键 - BookName。 我是否可以确保用户不会在数据库级别将数据库再次添加到数据库中。或者我是否必须在应用程序级别执行此操作?

请告知。

2 个答案:

答案 0 :(得分:0)

您可以使用Unique Index

CREATE UNIQUE NONCLUSTERED INDEX <idx_name> ON <table_name> (column1, column2)

假设您的表名为Books,您可以使用

CREATE UNIQUE NONCLUSTERED INDEX IDX_IdAndName_Unique ON [dbo].[Books] (BookId, BookName)

答案 1 :(得分:0)

我更喜欢将此作为约束而不是唯一索引添加,即使它们在幕后实现相同。约束正确地暗示了意图(以防止重复),而索引暗示许多是出于性能原因而创建的。

ALTER TABLE dbo.Books ADD CONSTRAINT UQ_BookName
  UNIQUE (BookName);