我有一个 PK = BookId 和另一个非键 - BookName 的表。我能否确保用户不会在数据库级别再次将同一本书添加到数据库中。还是我必须在应用程序级别进行?
请指教。
我有一个 PK = BookId 和另一个非键 - BookName 的表。我能否确保用户不会在数据库级别再次将同一本书添加到数据库中。还是我必须在应用程序级别进行?
请指教。
我更喜欢将其添加为约束而不是唯一索引,即使它们在幕后实现相同。约束正确地暗示了意图(防止重复),而索引对许多人暗示它是出于性能原因而创建的。
ALTER TABLE dbo.Books ADD CONSTRAINT UQ_BookName
UNIQUE (BookName);
你可以使用一个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)