在用户数据库中的SQL Server 2008R2中,仅在一个表中有一个索引,该索引从唯一的索引随机变为非唯一。每次发生时,我都希望获得警报。这样做的更好的方法是什么?
您可以查询系统表sys.indexes:列is_unique
显示1
如果索引是唯一的,则0
,如果不是。
SELECT name, is_unique
FROM sys.indexes
WHERE name = ?
nb:对于集群列store索引, is_unique
始终等于0。
您可以使用
SELECT name,
is_unique
FROM Sys.Indexes
WHERE name = 'indexname'
更好
IF NOT EXISTS(SELECT 1 FROM Sys.Indexes WHERE Name = 'IndexName' AND is_unique = 1)
BEGIN
PRINT'Do the job' --The index is not unique, do what you want
END
ELSE --You can just remove the else part if you don't need to do anything
PRINT 'IsUnique, do nothing'