SQL 有没有办法强制执行唯一列值,而不是另一个表的主键?
例如,假设我有TblDog
哪些字段:
DogId
-Primary Key
DogTag
-Integer
DogNumber
-varchar
DogTag
和字段必须是唯一的DogNumber
,但不链接到任何类型的表。
我能想到的唯一方法是在创建或编辑之前提取任何匹配的DogTag
记录并提取任何匹配的记录DogNumber
(不包括正在更新的当前记录。)这是在创建/编辑记录之前对数据库的两次调用。
我的问题是:有没有办法设置 SQL 来强制这些值是唯一的,而不将它们设置为键,或者Entity Frameworks
(没有过多调用数据库)?
我知道我可以将两个调用组合为一个,但我需要能够准确地通知用户哪个字段已重复(或两者都重复)。
编辑:数据库是 SQL Server 2008 R2。