我有数百个 SQL select 语句存储在数据库表的一nvarchar列中。
对于每个 select 语句,我需要找出它们从哪些表中读取。我需要以编程方式执行此操作(例如使用 T-SQL)并将访问表的列表存储在数据库表中。
我通过调用存储过程开始执行此操作sp_describe_first_result_set。它只能部分起作用。
例如:
EXEC sp_describe_first_result_set
@tsql = 'SELECT
a.code, b.customer_name
FROM table_a a
INNER JOIN table_b b ON a.code = b.code
WHERE NOT EXISTS (SELECT 1
FROM table_c c
WHERE a.code = c.code)',
@params = null,
@browse_information_mode = 2
Run Code Online (Sandbox Code Playgroud)
这会返回source_table值table_a和table_b但不是table_c。
我需要访问表的列表。
关于我如何实现这一目标有什么想法吗?