我知道在sql数据库存储过程中,有一个拼写错误(因此不存在)sq对象。搜索数据库中每个存储过程的主体的最佳方法是什么?
这相当于在visual studio中查找所有引用非常有用。
服务器是sql server 2005。
非常感谢
答案 0 :(得分:0)
您可以为数据库中的所有存储过程生成单个脚本,然后搜索该脚本。
右键单击数据库,然后转到“Generate Scripts”....从那里开始应该是相当明显的......
答案 1 :(得分:0)
SELECT name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%YourTableName%'
还有其他方法,例如检查information_schema.routines,加入sys.sql_modules。
答案 2 :(得分:0)
使用它:
SELECT
OBJECT_SCHEMA_NAME(m.object_id) + '.' + OBJECT_NAME(m.object_id), o.type_desc
FROM sys.sql_modules m
INNER JOIN sys.objects o ON m.object_id=o.object_id
WHERE m.definition like '%whatever%'
它会在存储过程,函数和视图中搜索“无论”字符串。
这是最简单的版本(从结果中删除对象类型):
SELECT
OBJECT_SCHEMA_NAME(m.object_id) + '.' + OBJECT_NAME(m.object_id)
FROM sys.sql_modules m
WHERE m.definition like '%whatever%'