Vous devrez peut-être modifier la requête pour inclure le propriétaire s'il y en a plusieurs dans la base de données.
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
C'est plus propre que d'utiliser une approche en deux étapes de génération de script et d'exécution. Mais l'un des avantages de la génération de scripts est qu'elle vous donne la possibilité de revoir l'intégralité de ce qui va être exécuté avant qu'il ne soit réellement exécuté.
Je sais que si je devais faire cela avec une base de données de production, je serais aussi prudent que possible.
Modifier Échantillon de code corrigé.