我需要找到視圖中使用的所有不同的資料庫表。
我試過了information_schema.view_table_usage。
我得到了當前資料庫的結果。
但是與不同資料庫關聯的表沒有被獲取。
請指導。
uj5u.com熱心網友回復:
不要使用information_schema(這是為什么)或sysdepends(這是為什么)。
SELECT v.name,
ed.referenced_database_name,
ed.referenced_schema_name,
ed.referenced_entity_name
FROM sys.views AS v
INNER JOIN sys.sql_expression_dependencies AS ed
ON v.[object_id] = ed.referencing_id;
如果您只想要另一個資料庫中的內容,請添加:
WHERE ed.referenced_database_name IS NOT NULL;
uj5u.com熱心網友回復:
您可以使用 sys 表sys.objects和sys.sysdepends來檢索您的資訊,如下所示
--Replace 'YOU VIEW NAME' by the view you want
--1) using old sys tables
select distinct(ov.name),ov.xtype from sysobjects o
inner join sysdepends d on o.id=d.id
inner join sysobjects ov on d.depid=ov.id
where o.name='YOUR VIEW NAME'
--2) using new sys.table
select distinct(ov.name),ov.type from sys.objects o
inner join sys.sysdepends d on o.object_id=d.id
inner join sys.objects ov on d.depid=ov.object_id
where o.name='YOUR VIEW NAME'
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/422536.html
標籤:
上一篇:通過平衡獲得復雜的結果
