Może być konieczne zmodyfikowanie zapytania, aby zawierało właściciela, jeśli w bazie danych jest więcej niż jeden.
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
Jest to czystsze niż dwuetapowe podejście polegające na generowaniu skryptu i uruchomieniu. Ale jedną z zalet generowania skryptów jest to, że daje możliwość sprawdzenia całości tego, co ma zostać uruchomione, zanim zostanie faktycznie uruchomione.
Wiem, że gdybym miał to zrobić na produkcyjnej bazie danych, byłbym tak ostrożny, jak to tylko możliwe.
Edytuj Poprawiono próbkę kodu.