SQL Server関数で使用されている基礎となるオブジェクトをリストする
-
26-09-2020 - |
質問
下記のオブジェクトのリストを表示するには以下のものを使用します。
SELECT view_name, Table_Name
FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE
WHERE View_Name IN
(
'View1', 'View2'
)
ORDER BY view_name, table_name
.
基本オブジェクトを関数内に提供するシステムテーブルを見つけることができませんでした。誰かが簡単にこの情報を引き出す方法を考えていますか?私は複数の基本DBオブジェクトを持つ多くの機能を扱っており、この情報を取得するための手動の努力を避けたいと思います。ありがとう!
解決
> sp_depends は、現在のすべてのバージョンで依存オブジェクトのリストを表示します。SQL Serverのものですが廃止予定のようにリストされています。
これは、オブジェクトを参照する方法があるMSDN記事です。関数と小さな変更付き関数によって参照されるオブジェクトのリストを取得することができます:
SELECT OBJECT_NAME(object_id) AS referencing_object_name
,COALESCE(COL_NAME(object_id, column_id), '(n/a)') AS referencing_column_name
,object_name(referenced_major_id) as referenced_object
,*
FROM sys.sql_dependencies
--WHERE referenced_major_id = OBJECT_ID('schema.objectname')
where object_id = object_id('schema.objectname')
ORDER BY OBJECT_NAME(object_id), COL_NAME(object_id, column_id);
.
他のヒント
*読んでください*
上記の@Spörri回答で述べたように、sys.sql_dependencies
は推奨されていません。
sys.sql_dependencies(Transact-SQL)
この機能は、Microsoft SQLの将来のバージョンで削除されます。 サーバ。新しい開発作業でこの機能を使用しないでください。 現在この機能を使用しているアプリケーションを変更します。使用する 代わりにsys.sql_expression_dependencies
私は3つの関数の中で観察されました、廃止予定のテーブルsys.sql_dependencies
に1つのファンクションオブジェクトIDが見つからないと、代わりにsys.sql_expression_dependencies
テーブルにすべて見つかりました。そのため、以下を使用して依存関係を取得します。
select *
from sys.sql_expression_dependencies
where referencing_id = object_id('schema.object_name')
. 所属していません dba.stackexchange