Estoy creando/cambiando una tonelada de índices en un db grande. Hacer esto funciona si el índice ya existe.Drop_existing arroja un error si el índice no existe
CREATE UNIQUE CLUSTERED
INDEX [table1_1] ON [dbo].[table1] ([col1], [col2], [col3])
WITH DROP_EXISTING ON [PRIMARY]
Pero si no existe los errores.
así que he cambiado mi guión a:
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]
Entonces la pregunta es ¿Estoy usando CON DROP_EXISTING mal?
Por motivos de rendimiento, es posible que desee IF/ELSE que de esta manera: si no existe índice luego crear con DROP_EXISTING ELSE crear (sin DROP_EXISTING) –
@ Philip Kelley es cierto, pero esto crea un código duplicado. ¿Alguna sugerencia adicional para manejar esto? – Magier