我正在創建/更改大型數據庫上的大量索引。如果索引已經存在,這樣做是有效的。如果索引不存在,Drop_existing會拋出一個錯誤
CREATE UNIQUE CLUSTERED
INDEX [table1_1] ON [dbo].[table1] ([col1], [col2], [col3])
WITH DROP_EXISTING ON [PRIMARY]
但是,如果它不存在的錯誤。
所以我改變了我的腳本:
IF EXISTS (SELECT name FROM sysindexes WHERE name = 'table1_1') DROP INDEX [table1].[table1_1]
CREATE UNIQUE CLUSTERED
INDEX [table1_1] ON [dbo].[table1] ([col1], [col2], [col3])
ON [PRIMARY]
所以,問題是我在帶DROP_EXISTING錯用?
出於性能考慮,你可能想的if/else它像這樣:IF指數存在然後用DROP_EXISTING ELSE創建(不DROP_EXISTING) – 2010-06-24 15:04:50
創建@ PhilipKelley是真實的,但是這會創建dublicate代碼。任何其他建議來處理這個問題? – Magier 2017-07-11 15:35:01