Potrebbe essere necessario modificare la query per includere il proprietario se ce n'è più di uno nel database.
DECLARE @cmd varchar(4000)
DECLARE cmds CURSOR FOR
SELECT 'drop table [' + Table_Name + ']'
FROM INFORMATION_SCHEMA.TABLES
WHERE Table_Name LIKE 'prefix%'
OPEN cmds
WHILE 1 = 1
BEGIN
FETCH cmds INTO @cmd
IF @@fetch_status != 0 BREAK
EXEC(@cmd)
END
CLOSE cmds;
DEALLOCATE cmds
Questo è più pulito rispetto all'utilizzo di un approccio in due passaggi di generazione di script più esecuzione. Ma uno dei vantaggi della generazione dello script è che ti dà la possibilità di rivedere l'intero processo che verrà eseguito prima che venga effettivamente eseguito.
So che se dovessi eseguire questa operazione su un database di produzione, sarei il più attento possibile.
Modifica Esempio di codice corretto.