0

我有一个 PK = BookId 和另一个非键 - BookName 的表。我能否确保用户不会在数据库级别再次将同一本书添加到数据库中。还是我必须在应用程序级别进行?

请指教。

4

2 回答 2

0

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

ALTER TABLE dbo.Books ADD CONSTRAINT UQ_BookName
  UNIQUE (BookName);
于 2012-06-12T23:55:19.127 回答
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)
于 2012-06-12T22:37:53.343 回答