我修改了一个程序,它现在需要更多的参数。如何找到调用过程的每个位置,以便更新proc传递的参数个数?
我试过了:
select * from syscomments where text like '%MODIFIED-PROCEDURE-NAME%'
但我仍然在寻找其他地方调用此查询未返回的过程。
答案 0 :(得分:8)
使用sys.sql_modules:
SELECT
OBJECT_SCHEMA_NAME(m.object_id) + '.' + OBJECT_NAME(m.object_id)
FROM sys.sql_modules m
WHERE m.definition like '%whatever%'
sys.sql_modules.definition是nvarchar(max)。其他类似的视图有nvarchar(4000)列,其中文本被分成多行。
答案 1 :(得分:5)
让自己Red-Gate SQL Search - 这很棒,它是免费,它只是有效。它可以用来做你正在寻找的东西!抓住它 - 它的重量是金价!
答案 2 :(得分:0)
如果这完全在SQL服务器内部,您可以重新编译它。
只需创建一个包含所有存储过程和函数的脚本即可。运行脚本。它会轰炸问题所在。
或者,您也可以只搜索您创建的脚本。