我正在尝试处理我们程序中的升级组件。这需要更改索引的名称
EXEC sp_rename N'Sig_Summary1Index.IX_Sig_Summary1Index_StartTime',
N'Sig_Summary3Index.IX_Sig_Summary1Index1_StartTime', N'INDEX';
(我们需要与 SQL SERVER 2005 保持兼容)
然后检查它是否存在于同一个事务中:
IF NOT EXISTS
( SELECT *
FROM sys.indexes
WHERE object_id = OBJECT_ID(N'[dbo].[Sig_Summary1Index]' )
AND name = N'[IX_Sig_Summary1Index1_StartTime]')
CREATE CLUSTERED INDEX [IX_Sig_Summary1Index1_StartTime]
ON [dbo].[Sig_Summary1Index] (
[StartTime] ASC
)
WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF,
IGNORE_DUP_KEY = OFF,
DROP_EXISTING = OFF,
ONLINE = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON,
FILLFACTOR = 95
)
ON [PRIMARY]
这将尝试创建索引。:(不知何故,在事务期间,sys.indexes
表还没有更新。有没有其他方法可以避免创建这个索引?
编辑:有什么办法可以“刷新” sys 表来更新?手动插入记录?做一些事情以使“检查”不会改变?