我正在编写一个数据库升级脚本,该脚本将检查索引是否定义了正确的两列。如果没有,或者只有其中之一,那么我将删除它(有没有办法更改索引?),然后用两者重新创建它。
最佳答案
我手头没有数据库可以立即测试这一点,但您应该能够使用以下 IF EXISTS 语句查看索引中是否存在列。
我不确定您是否可以即时更改索引。
IF EXISTS
(
SELECT MyIndex.Name AS IndexName,
Columns.name AS ColumnName
FROM sys.indexes MyIndex
INNER JOIN sys.index_columns IndexColumns
ON MyIndex.index_id = IndexColumns.index_id
AND MyIndex.object_id = IndexColumns.object_id
INNER JOIN sys.columns Columns
ON Columns.column_id = IndexColumns.column_id
AND IndexColumns.object_id = Columns.object_id
WHERE Columns.name = 'ColumnName'
AND MyIndex.Name='IX_MyIndexName'
)
关于sql-server - 是否有一个干净的 T-SQL 查询可以用来验证索引是否具有正确的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/230397/