我有一个数据库,有一些名称不同但主体相同的存储过程。如何使用 T-SQL 语句动态识别它们?
我无法使用
information_schema.routines
表的定义列,因为它包含创建过程名称。因此,如果没有这个,我如何检查动态冗余程序。
我尝试使用不同的联接和例程表,但找不到正确的解决方案。
您可以通过以下查询在程序主体中搜索:
SELECT DISTINCT
o.name AS ObjectName
,s.name AS SchemaName
,o.Type_desc
FROM sys.sql_modules m
INNER JOIN sys.objects o
ON m.object_id = o.object_id
INNER JOIN sys.schemas s
ON o.schema_id = s.schema_id
WHERE m.definition LIKE '%' + N'your search body' + '%' ESCAPE '\'
此查询也在 Veiws 和其他对象中搜索。