解決済み

複数テーブルの一括削除

  • 困ってます
  • 質問No.4285545
  • 閲覧数13140
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 7% (1/13)

複数のテーブルを一括して削除(DROP TABLE)したいのですが、
テーブル名を一つ一つ記述しないといけないのでしょうか?
テーブル名の頭文字は全てTから始まります。

ご教示の程宜しくお願い致します。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 88% (591/669)

システムビューを使って、クエリを動的に生成し、実行する方法があります。
・SQL Server 2005の場合
DECLARE @sql varchar(max)
SELECT @sql=ISNULL(@sql,'')+'DROP TABLE '+name+';'
FROM sys.objects
WHERE name LIKE 'T%' and type='U'
EXEC (@sql)

・SQL Server 2000の場合は以下ですが、varchar(max)が使えないので、あまりに対象テーブルが多いとSQLが切れます。その場合は条件を調整して数回に分けて実行するといいでしょう
(EXEC (@sql1+@sql2+@sql3)のようにやる手はありますが、煩雑になるので割愛しました)

DECLARE @sql varchar(8000)
SELECT @sql=ISNULL(@sql,'')+'DROP TABLE '+name+';'
FROM sysobjects
WHERE name LIKE 'T%' and xtype='U'
EXEC (@sql)

いずれの場合もいきなり実行するのではなくて、EXEC (@sql)のところをprint @sqlに書き換えて生成されたスクリプトを確認してから実行してください。
OKWAVE 20th Be MORE ありがとうをカタチに
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ