当前位置: 首页 > 知识库问答 >
问题:

查找表值函数在所有存储过程中的使用[已关闭]

通寂离
2023-03-14

我正在开发一个用于多个存储过程的TVF。如何找到使用该TVF的所有存储过程?

共有2个答案

戚衡
2023-03-14

我已经成功地使用了这个;

SELECT *
FROM INFORMATION_SCHEMA.ROUTINES 
WHERE OBJECT_DEFINITION(OBJECT_ID(ROUTINE_NAME)) LIKE '%TVFn%'

最好不要搜索视图的“例程定义”字段,因为它已被覆盖。PS-无法在2005年进行测试,抱歉

韩鸿波
2023-03-14

您可以在元数据中搜索函数的提及,记住如果这是在其他地方或注释中提到的常见名称,它可能会产生误报,或者如果使用动态SQL构建函数调用,则会错过实例

SELECT s.name, p.name FROM sys.procedures AS p
  INNER JOIN sys.schemas AS s
  ON p.[schema_id] = s.[schema_id]
  INNER JOIN sys.sql_modules AS m
  ON p.[object_id] = m.[object_id]
  WHERE m.definition LIKE N'%tvfname%';

2012年还有其他方法,但是因为这个问题也被标记为2005年...

 类似资料:
  • 问题内容: 如何在给定数据库的所有存储过程中全局搜索关键字? 我使用了以下内容,但无法获得预期的结果… 问候-Vas 问题答案: 看一下此链接-http: //www.sqlservercentral.com/scripts/T-SQL+Aids/31131/,看看是否有帮助。 链接文章中的SP由Prasad Bhogadi编写,内容如下: 您可以使用它在数据库中创建一个SP或使其适应一次查询。

  • 问题内容: 我已经编写了一个存储过程函数来从表中获取名称。麻烦的是,我希望将表名作为参数传递(我需要使用几个不同的表来使用此函数): 此方法有一个错误,因为它使用变量名“ tableName”而不是变量的实际值。 我可以解决此问题的 方法 通过使用这样的: …但是,当我尝试在函数中执行此操作时,我收到一条消息,提示: 存储函数或触发器中不允许使用动态SQL 我尝试使用 过程 代替,但是我不能像函数

  • 问题内容: 我试图在postgres 9.3上使用sql调用函数内的函数。 这个问题与我的另一篇文章有关。 我写了下面的函数。到目前为止,我还没有合并任何类型的save-output(COPY)语句,因此我试图通过创建嵌套函数print-out函数来解决此问题。 以上功能有效。 尝试创建嵌套函数。 调用嵌套函数。 输出 上面给出了这个。但是,当在print_out()中将arg1,arg2替换为’

  • 在我的应用程序中,我想执行像SELECT*FROM tbl这样的查询,其中,@list中的col In(@list)可以有变量no of值。我正在使用MS SQL server数据库。当我搜索这个问题时,我找到了这个链接 http://www.sommarskog.se/arrays-in-sql-2008.html 此链接表示使用表值参数。因此,我使用Microsoft SQL Server M

  • 问题内容: 我在任何地方都找不到此答案,但是可以从MySQL中的另一个存储过程调用存储过程吗?我想找回标识值,并在父存储过程中使用它。我们不能再使用FUNCTIONS! 问题答案: 参数应该可以帮助您将值返回给调用过程。基于此,解决方案必须是这样的。

  • 问题内容: SQL Server2005支持CLR,所以这意味着我们可以在后端使用CLR,所以该怎么做。我在c#中有一些函数,它对日期时间变量进行了一些复杂的操作,现在我想在SP中使用这些函数。首先,可以这样做。 问题答案: 是的,可以在SQL Server 2005数据库中使用.NET。请注意,SQL Server 2005支持的.NET版本是2.0。 这是使用Visual Studio制作CL