Möglicherweise müssen Sie die Abfrage ändern, um den Eigentümer einzubeziehen, wenn es mehr als einen in der Datenbank gibt.
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
Dies ist sauberer als die Verwendung eines zweistufigen Ansatzes aus Skript generieren und ausführen. Aber ein Vorteil der Skriptgenerierung ist, dass Sie die Möglichkeit haben, alles zu überprüfen, was ausgeführt werden soll, bevor es tatsächlich ausgeführt wird.
Ich weiß, dass ich so vorsichtig wie möglich sein würde, wenn ich dies gegen eine Produktionsdatenbank tun würde.
Bearbeiten Codebeispiel korrigiert.