2017-11-16 11 views
0

私はストアドプロシージャで使用されるテーブルのリストを取得する必要がありますが、Azure Datawarehouseではsp_dependsはサポートされていません。Azureデータウェアハウスのsp_dependsの代替

もう一つの方法は、INFORMATION_SCHEMA.ROUTINESからストアドプロシージャコードを取得し、スクリプトを実行して[schema]。[tablename]をストアドプロシージャ定義から取得することですが、ここで問題は全体のprocを変数に格納します。 VARCHAR(MAX)には8000という制限があります。私のprocがこの制限を超えていれば、完全なテーブルリストを手に入れることはできません。

答えて

0

sys.sql_expression_dependenciesを使用してください。

SELECT ReferencingObjectType = o1.type, 
     ReferencingObject = SCHEMA_NAME(o1.schema_id)+'.'+o1.name, 
     ReferencedObject = SCHEMA_NAME(o2.schema_id)+'.'+ed.referenced_entity_name, 
     ReferencedObjectType = o2.type 
FROM sys.sql_expression_dependencies ed 
     INNER JOIN sys.objects o1 
     ON ed.referencing_id = o1.object_id 
     INNER JOIN sys.objects o2 
     ON ed.referenced_id = o2.object_id 
WHERE o1.type in ('P','TR','V', 'TF') 
ORDER BY ReferencingObjectType, ReferencingObject 
+0

私は上記のクエリを実行したとき、結果が表示され、ストアドプロシージャではなく、where条件が役に立たなかったとコメントしました。私はAzureデータウェアハウスを使用しています。 – Joseph

関連する問題