データベースに複数の所有者がいる場合は、所有者を含めるようにクエリを変更する必要がある場合があります。
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
これは、スクリプトの生成と実行の2段階のアプローチを使用するよりもクリーンです。ただし、スクリプト生成の利点の1つは、実際に実行される前に、実行される内容全体を確認できることです。
本番データベースに対してこれを行う場合は、可能な限り注意する必要があることを私は知っています。
編集 コードサンプルが修正されました。