我正在大型数据库上创建/更改大量索引。如果索引已经存在,则执行此操作有效。
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]
所以问题是我使用WITH DROP_EXISTING 是否错误?
最佳答案
是的,这是DROP_EXISTING
的限制,如果索引尚不存在,它就会失败! (至少在 MS SQL 2000 和 2005 上)
关于sql - 如果索引不存在,Drop_existing 会抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3106197/