Sql server sys.index似乎已过期

Sql server sys.index似乎已过期,sql-server,Sql Server,我想创建一个脚本来修改表上的索引。首先,我检查查询中的sys.indexes、sys.index_列,以确保该索引尚未修改(这些列与我预期的相同),如果需要更新,则删除该索引。然后,如果索引不存在,我将使用新结构创建索引。所有这些看起来都很好,当我转到表上的对象浏览器并查看索引的属性时,一切看起来都很好。但是,当我再次查询sys.index和sys.index_列时,它会显示旧索引的结构。如何更新这些表?我假设在删除索引后再次创建索引时,它会自动发生。我的查询在查看sys.index时出错 我有

我想创建一个脚本来修改表上的索引。首先,我检查查询中的sys.indexes、sys.index_列,以确保该索引尚未修改(这些列与我预期的相同),如果需要更新,则删除该索引。然后,如果索引不存在,我将使用新结构创建索引。所有这些看起来都很好,当我转到表上的对象浏览器并查看索引的属性时,一切看起来都很好。但是,当我再次查询sys.index和sys.index_列时,它会显示旧索引的结构。如何更新这些表?我假设在删除索引后再次创建索引时,它会自动发生。

我的查询在查看sys.index时出错

我有这个:

SELECT *
FROM sys.indexes i
JOIN sys.index_columns ic
  ON ic.index_id = i.index_id
  AND ic.object_id = i.object_id
JOIN sys.columns c
  ON c.object_id = i.object_id
  AND c.column_id = ic.index_column_id  --<--
WHERE i.name = 'Index002'
选择*
从sys.i
连接sys.index_列
在ic.index\u id=i.index\u id上
和ic.object\u id=i.object\u id
连接sys.c列
在c.object\u id=i.object\u id上

c.column\u id=ic.index\u column\u id——它们应该是。您可能需要创建一个完整的脚本来演示问题以获得帮助。
SELECT *
FROM sys.indexes i
JOIN sys.index_columns ic
  ON ic.index_id = i.index_id
  AND ic.object_id = i.object_id
JOIN sys.columns c
  ON c.object_id = i.object_id
  AND c.column_id = ic.column_id --<--
WHERE i.name = 'Index002'