t使用 T-SQL 标识视图定义中的联接中使用的列



假设您根据以下内容定义了一个视图:

CREATE VIEW v_name 
AS
SELECT * FROM a
JOIN b ON a.col1 = b.col2

是否可以使用查询、函数或存储过程来获取联接的列?

我知道有一些选项允许使用 sys.sql_expression_dependencies、sys.views 或 sys.dm_referenced_entitities(( 获取表,但它们不允许您获取比使用的表更多的元数据。

不是完整的答案,但一开始很有帮助。

SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, SUBSTRING(VIEW_DEFINITION, CHARINDEX('join', VIEW_DEFINITION, 1), LEN(VIEW_DEFINITION)) AS 'View_Join'
FROM INFORMATION_SCHEMA.VIEWS 
WHERE VIEW_DEFINITION like '%JOIN%ON%'

最新更新