gpt4 book ai didi

sql - 如何找到数据库存储过程中使用的所有列?

转载 作者:行者123 更新时间:2023-12-04 00:39:16 25 4
gpt4 key购买 nike

如何查看数据库中所有存储过程(+ View 和函数)使用的所有列和表的列表。

示例:

create procedure proc as
select tab1.a,tab2.d,tab2.e
from tab1
join tab2 on tab1.b = tab2.b
where tab1.c = 'filter'
end

输出:

tab1.a
tab1.b
tab1.c
tab2.b
tab2.d
tab2.e

我需要查看数据库中任何代码引用的所有列。谢谢。

欢迎评论。

最佳答案

create proc usp_test1
as
begin
select name,object_id from test
end

create proc usp_test2
as
begin
select * from test1
end

执行下面的代码给我

SELECT DISTINCT 
O.name SP_Name,T.name Table_Name,c.name Field_Name
FROM sys.sysdepends D
JOIN sys.sysobjects O ON O.id = D.id
JOIN sys.sysobjects T ON T.id = D.depid
JOIN sys.columns C ON C.column_id=d.depnumber
and C.object_id=D.depID
WHERE O.xtype = 'P'


SP_Name Table_Name Field_Name
usp_test1 test name
usp_test1 test object_id
usp_test2 test1 create_date
usp_test2 test1 is_ms_shipped
usp_test2 test1 is_published
usp_test2 test1 is_schema_published
usp_test2 test1 modify_date
usp_test2 test1 name
usp_test2 test1 object_id
usp_test2 test1 parent_object_id
usp_test2 test1 principal_id
usp_test2 test1 schema_id
usp_test2 test1 type
usp_test2 test1 type_desc

引用资料: http://www.sqlservercentral.com/Forums/Topic1060325-149-1.aspx

关于sql - 如何找到数据库存储过程中使用的所有列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35603412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com