- - PR -
ストアドプロシジャーで使用しているテーブル名の取得方法
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2005-03-10 13:18
お世話になっております
SQLServer2000を使用しております ストアドプロシジャーの管理表を作成しておりまして、 ストアドプロシジャーで使用しているテーブル名をSQLにて 取得する方法を調べております。 以下のSQLでストアドプロシジャー名、テーブル名は取得できるんですが Select 'Name' = o.name, 'Owner' = user_name(uid), 'Object_type' = substring(v.name,5,31) From sysobjects o, master.dbo.spt_values v Where o.xtype = substring(v.name,1,2) collate database_default and v.type = 'O9T' and substring(v.name,5,31) In ('user table','stored procedure') Order by Object_type desc, Name asc 上記のSQLで取得できたストアドプロシジャー名を元に、 ストアドプロシジャーの中身を取得しようとしているのですが その方法がまだわかっておりません… それとも、もっと良い方法があるかもしれません ご存知の方がおりましたら、お教え下さい よろしくお願いします。 | ||||
|
投稿日時: 2005-03-10 13:28
今日は。
って事はそれなりの権限もたれてるんですよね? Enterprise Managerからデータベース選んで、ストアドプロシージャ選択して 該当の物をダブルクリックすれば内容表示されますよ | ||||
|
投稿日時: 2005-03-10 14:06
msoです。
良い方法かわかりませんが、 http://sqldigger.bdsweb.be/ というツールもあります。 英語なのでちょっと辛いかも知れませんが、 なんとかなると思います。 | ||||
|
投稿日時: 2005-03-10 14:11
早速のお返事ありがとうございます
[引用] >って事はそれなりの権限もたれてるんですよね? >Enterprise Managerからデータベース選んで、ストアドプロシージャ選択して >該当の物をダブルクリックすれば内容表示されますよ 権限はもっております 個々のストアドプロシージャはNAOさんの方法で見られるのですが、 DBを指定してそこにあるストアドプロシジャーのすべて内容をSQL文で取得して そのデータをテーブルに保存できればなと思いまして^^;> 例えば、以下のテーブルにストアド情報のデータを取得する テーブル名:STORED_TABLE ・ストアド名 Varchar(50) ・データ nText <--- ここにストアドの内容を登録する | ||||
|
投稿日時: 2005-03-10 14:25
今日は。
exec sp_helptext [プロシージャ名] で中身は表示できます。 _________________ Inspired Ambitious ISMS Assistant Auditor | ||||
|
投稿日時: 2005-03-10 14:47
ん? ストアドの全文を取り出して自分で構文解析してテーブル名を切り出していくの?
ストアドで使われているテーブル名を知りたい、つまり従属関係を知りたいだけなら、sp_MSdependencies が使えるけど。どうよ? ちなみに Books Online には載っていないようなので、SQL プロファイラを起動しておいて、エンタープライズマネージャから、テーブルを選択して 従属関係の表示 を選んでみて。sp_MSdependencies の使い方が分かると思う。 | ||||
|
投稿日時: 2005-03-10 14:50
NAOさん、msoさんご回答ありがとうございます
sp_helptextで出来そうです msoさんにご紹介してもらった「SQL Digger」ツールは翻訳が必要みたいなので 時間をかけて調べてみたいと思います。 どうもありがとうございました [ メッセージ編集済み 編集者: nds053 編集日時 2005-03-10 14:52 ] | ||||
1
