|
分類:[データベース全般]
初めまして、とあるDB上にあるストアドプロシジャーから、他のDBにあるTBLにDELETE文を発行する方法で、 ストアドに引数を与えて動的に対象DBを変更する方法を調べています。
SQLServer2010のストアドプロシジャーにて以下をやりたく ・DB-A、DB-B、DB-Xと3つのDBがある前提 ・DB-Xに存在するストアドプロシジャーは指定したTBLに対してDELETEを行う。 但し、DB-Xに存在するストアドプロシジャーに引数でDB名を与えて、それを受けてDB-X上にあるストアドプロシジャーから DB-AやDB-Bに存在するTBLを動的に指定してDELETEを行いたい。
例:DB-X上にあるストアドプロシジャー「PROC_DEL_TBL」に以下のような引数を与えて実行する PROC_DEL_TBL 'DB-A' この場合はDB-Aにある特定のTBLにDELETEを行う。
PROC_DEL_TBL 'DB-B' この場合はDB-Bにある特定のTBLにDELETEを行う。
※いずれも特定のTBLは同じ名称なので、それはDB-X上にあるストアドプロシジャー「PROC_DEL_TBL」に固定で書く予定
引数で区分を与えて、「PROC_DEL_TBL」内でIF文に分けて処理する方法は成功したのですが、 それだと対象DBが増える度にメンテが必要で、 また、「PROC_DEL_TBL」内でDELETE文を文字列変数に入れて、その際に引数で指定したDB名を使って動的にSQL文字列を変えて、 それをEXECで実行するという方法も成功したのですが、エレガントではないので困っています。 どなたか解決方法ご存じではないでしょうか?
以上、ご回答の程よろしくお願い致します。
|