ストアドプロシージャ、ビュー、関数などによってSQLサーバで使用されていないテーブルを見つけるためのt-sqlスクリプトはありますか?それ以上でなく、削除する前に100sのテーブルを持つデータベースがあります。テーブルには、データベース内の各オブジェクトを通過できるスクリプトがあるかどうかを知りたかったので、使用中のテーブルがあるかどうかを教えてください。ストアドプロシージャ、ビュー、関数などで使用されていないテーブルを見つけるtsqlスクリプト?
6
A
答えて
8
スクリプトを使用する場合は、here (Listing SQL Server Object Dependencies)は、依存関係をスクリプト化する方法の非常に良い記事です。これを使用して、参照されているテーブルのリストを作成できます。あなたのデータベースにあるテーブルのリストがあるので、どのテーブルが使用されていないのか分かります。
記事では、
sp_dependsストアドプロシージャを使用しています。しかし、それは1つの失敗があります。たとえば、テーブル "MyTable"を使用するストアドプロシージャがあり、テーブル "MyTable"を作成する前にプロシージャを作成すると、依存関係の一覧には表示されません。そのため、テーブル
syscommentsを検索して依存関係を見つける必要があります。しかし、これは正確ではありません。なぜなら、コメントの中にテーブルの名前があれば、それを依存関係として扱うからです。
4
管理スタジオを使用している場合は、テーブルを右クリックして「依存関係を表示」することができます。
そして、ここで私は推測しているTSQLでこれを行う方法についての記事へのリンクは、あなたが探しているものである:
https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/datacenter/?p=277
あなたは常に一時テーブルを構築することができ依存関係のあるすべてのテーブルと/ varを比較し、それをすべてのテーブルと比較して、依存関係のないものを確認します。
8
私が知る限り、SQL Serverの依存関係管理に本当に頼ることはできません。ルーカスは多くの問題の1つを指摘した。
2005年には、古いsyscommentsテーブルと同等のものがsys.sql_modulesです。
select t.name, sys.objects.name foundin, sys.objects.type_desc
from sys.objects t
left outer join
sys.sql_modules
inner join sys.objects on sys.objects.object_id = sys.sql_modules.object_id
on sys.sql_modules.definition like '%' + t.name + '%'
where t.type = 'U'
and sys.objects.name is null
order by t.name, type_desc, foundin
あなたはIS NULL条件を持つ行をコメントアウトした場合、あなたはすべてを見つける:、TSQLコードで(ビュー、SPS、機能)を発生しない、すべてのテーブル名を検索この文を使用するには
TSQLコードのすべてのテーブル名の出現。 (テーブル名がそのテーブルを実際に参照しているかどうかに関係なく)
関連する問題
- 1. 静的解析によってCプロジェクトで使用されていない関数を見つける
- 2. データベーステーブル、関数、ストアドプロシージャ、ビューなどのログを使用します。
- 3. ネットワークで使用されていないIPアドレスを見つける方法は?
- 4. C++で使用されていないコードを見つけてインクルード
- 5. なぜスクリプト関数が見つからないのですか?initializeTrigger関数を使用するとsendInvoiceIfNew?
- 6. eig関数を使用しないでMATLABの固有値を見つける
- 7. 使用されていないキュウリのステップを見つける方法
- 8. もう使用されていないウェブサイトを見つけるには?
- 9. スカラー変数 "@query"をストアドプロシージャの動的tsqlとして宣言しなければならない
- 10. インデックスを使用していないTSQL
- 11. gitはマージされていないブランチを見つける
- 12. BTソケットに使用されているUUIDを見つける
- 13. EF 4.1とLINQを使用して関連のないエンティティを見つける
- 14. スクリプトが見つけたモジュールをperlデバッガが見つけられないのはなぜですか?
- 15. cshスクリプトが実行ファイルを見つけられない
- 16. PHPで関数が使用されているコードベースの場所を自動的に見つける方法
- 17. どのチェックサムが使用されているかを見つける
- 18. テーブル関数が削除された変数を見つける理由
- 19. 再帰的なマージ関数などを使用して親の子孫をすべて見つけますか?
- 20. テーブル関数に結合されたストアドプロシージャ?
- 21. Cheerioがテーブルの内容を見つけられない
- 22. ストアドプロシージャ/関数を使用してデータベース、テーブル、プロシージャを作成していますか?
- 23. PHPでstrpos関数の問題が針を見つけられない
- 24. VS2010ソリューションで文書化されていないコードメンバーを見つける
- 25. テンプレートの特殊化を使用してメンバー関数の引数型などを見つけるにはどうすればよいですか?
- 26. RepositoryItemReaderが引数を持つメソッドを見つけられない
- 27. 1つの関数からBooleanが返されなければならない
- 28. PHP Simple HTML DOM Parserを使用してハイパーリンクされていないテキストを見つける方法
- 29. C#を使用してExcelでテーブル境界を見つける
- 30. ParseがReact NativeでlocalStorage変数を見つけられない
「使用されていない」テーブルは何ですか?あなたは空のテーブルを意味しますか? –
いいえ、私はストアドプロシージャ、ビュー、関数などで使用されていないテーブルを意味します。私は以前にデータベースを作成したと仮定し、100sのテーブルを持っているものもあれば廃止されたものもあります。テーブルを落とし始めると、私は彼らが使用中であるかどうかを知りたい。私はこの質問が投票された理由を理解できませんが、非常に有効で分かりやすい質問のようです。 – Xaisoft
タイトルを「T-SQLスクリプトに変更して、ストアドプロシージャ、ビュー、および関数で参照されていないテーブルを見つけることができます。 – shufler