查找具有相同主体的冗余存储过程

问题描述 投票:0回答:1

我有一个数据库,有一些名称不同但主体相同的存储过程。如何使用 T-SQL 语句动态识别它们?

我无法使用

information_schema.routines
表的定义列,因为它包含创建过程名称。因此,如果没有这个,我如何检查动态冗余程序。

我尝试使用不同的联接和例程表,但找不到正确的解决方案。

sql-server tsql stored-procedures dynamic-sql redundancy
1个回答
0
投票

您可以通过以下查询在程序主体中搜索:

  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 和其他对象中搜索。

在我的数据库中运行查询的示例:

© www.soinside.com 2019 - 2024. All rights reserved.