【发布时间】:2009-02-19 11:39:58
【问题描述】:
我有一个带有主键的表,但我希望限制另外两列,这样可以保证两者的组合始终是唯一的。
(一个愚蠢的例子:在 BOOKS 表中,IBAN 列是主键,但 Title 和 Author 列的组合也应该始终是唯一的。)
在 SQL Server Management Studio 中,可以创建一个新索引并将 IsUnique 设置为 Yes,或者我可以创建一个新的唯一键。
这两种方法有什么区别,哪一种最适合哪些目的?
【问题讨论】:
-
以防万一:如果您需要允许多行为 NULL 但任何非 NULL 行必须是唯一的:要么使用触发器强制执行,要么使用具有唯一索引的视图 - 创建视图xxx AS SELECT Title, Author FROM Books WHERE (Title + Author) IS NOT NULL 然后在该视图上创建索引
-
感谢 Kirsten,这是有用的信息!
标签: sql-server database