Ich erstelle/ändere eine Tonne Indizes auf einer großen Datenbank. Dies funktioniert, wenn der Index bereits existiert.Drop_existing löst einen Fehler aus, wenn der Index nicht existiert
CREATE UNIQUE CLUSTERED
INDEX [table1_1] ON [dbo].[table1] ([col1], [col2], [col3])
WITH DROP_EXISTING ON [PRIMARY]
Aber wenn es die Fehler nicht existiert.
mein Skript Ich habe so geändert:
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]
Die Frage ist also bin ich mit DROP_EXISTING mit falsch?
Aus Performance-Gründen möchten Sie vielleicht IF/es ELSE wie folgt: IF-Index erstellen Sie dann existiert mit DROP_EXISTING ELSE erstellen (ohne DROP_EXISTING) –
@ PhilipKelley ist wahr, aber das erzeugt doppelten Code. Irgendwelche zusätzlichen Vorschläge, um damit umzugehen? – Magier