• ベストアンサー

複数テーブルの一括削除

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

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

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

システムビューを使って、クエリを動的に生成し、実行する方法があります。 ・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に書き換えて生成されたスクリプトを確認してから実行してください。

関連するQ&A

  • mysqlでのテーブル削除について質問します。

    総称名を使ってテーブルを削除することは可能でしょうか? drop table test060301; drop table test060302; drop table test060303; drop table test060304; ↓ drop table test*; このやり方では、うまくいきません。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • SQL テーブル削除

    教えてください。 あるテーブルをエクスポートする際にエクスポートエラー が出ます。(このエラーは承知でエラーを出しています。)その際にエクスポートエラーのテーブルが作成されますが、このテーブルをSQLのDROP文で削除したいのですが テーブル名がエクスポートvエラー(v=スペースです。) になってしまいます。 例)T_1_エクスポートvエラー このテーブルを削除しようと  DROP TABLE T_1_エクスポートvエラー ってSQLを書くとT_1_エクスポートが見つかりませんとエラーになってしまいます。 どうしたら、このテーブルを削除できるでしょうか? それとも、エクスポートエラーのテーブルを作成させない設定ってあるんでしょうか? わかりにくい説明でごめんなさい。 よろしくお願いします。

  • テーブルが削除できない

    MySQL5でアクセスの「入金」という日本語名のテーブルをインポートしました。しかしMySQLではテーブル名がバグってしまい、MySQL Command Line Clientで以下のように削除しようとしても「Unknown table 蜈・驥・」と出て削除できません。削除したいテーブルが指定できず困っています。強制的に削除する方法はないでしょうか? set names sjis; use データベース名; drop tabe 入金;

  • 削除したテーブルを元に戻すことは出来ますか?

    SQL server 2005を使っています。 誤ってDrop table ~~を使って必要なテーブルを削除してしまいました。 まだデータの圧縮とかはしていないのですが、 一旦削除したテーブルを元に戻すことは可能でしょうか?

  • 複数テーブルの削除

    お世話になります。 うまい資料が見つからなかったので質問させてください。 例えば、下記のようなテーブルが3つあったとします。 <table1> id name date <table2> id tel <table3> id etc name,date,tel,etcは同タイミングで一括に登録され、3テーブルともに共通のidで保存されます。 この時、table1のdate(日付が入ります)が30日以上経過しているデータについて、いずれのテーブルからも削除したいと思っています。 こんな場合、どんなSQL文を書けば良いのでしょうか? お分かりになる方、何卒よろしくお願いしますm(_ _)m

    • ベストアンサー
    • MySQL
  • 巨大テーブルからインデックスを複数削除する場合について

    巨大テーブルのINDEXを複数削除したいのですが、 MySQLでインデックスを削除すると、 テンプテーブルを作成してしまうので、 テンプテーブルが作られるのを1度で済ませたいのですが、 DROP INDEX構文で、複数のINDEXを指定する事は無理でしょうか?

    • ベストアンサー
    • MySQL
  • drop tableで削除されず空になるだけ

    お世話になります。 現在mysql 4.1.17を使用してテーブルが2000ほどあります 下記のクエリーをphpからループで実行し不要になったテーブルを500ほど削除しました。 @mysql_query("drop table table_$number"); 一旦は削除されたように見えるのですが、あらためて確認をするとテーブルの内容が空になっただけで実際には削除されていませんでした。 権限の問題か考えたのですが一つだけですと削除できます。 どなたか原因を思いつく方はおられないでしょうか。 よろしくお願い致します。

  • すべてのテーブル削除

    DELETE tbl1,tbl2,tbl3 FROM tbl1,tbl2,tbl3; DROP TABLE tbl1,tbl2,tbl3 FROM tbl1,tbl2,tbl3; 以外で簡単に複数あるテーブルを削除する方法ってありますでしょうか?

    • ベストアンサー
    • MySQL
  • エクスポートエラーのテーブル削除

    お世話になります。 アクセス2000(Win2K)であるテーブル(T_テーブル)をExcelにエクスポートしているのですが、 この時にエクスポートエラーのテーブルが出来ます。 エラーの内容は承知しているのでこのエラーが出るのはいいのですがこのテーブル自体を削除したいのです。 SQLで「DROP TABLE T_テーブル_エクスポート エラー;」とクエリーを作って VBA上でOPENQUERYで上記SQLを実行しました。 ところがエクスポートとエラーの間のスペースが邪魔をして「T_テーブル_エクスポートが見つかりません」 とメッセージがでます。 どうしたらエクスポートエラーのテーブルを削除できるのでしょうか?

  • ALTER TABLEで複数のカラムを消す

    ALTER TABLEでなくてもいいんですが ALTER TABLE KOJINTABLE DROP COLUMN(T_VAL, MEMO); これができませんでした。 T_VALとMEMOを同時に消す書式はありませんか?