プログラムのアップグレードコンポーネントに取り組んでいます。これには、インデックスの名前を変更する必要があります
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テーブルを「フラッシュ」して更新する方法はありますか?レコードを手動で挿入しますか?「チェック」が変更されないように何かしますか?