Sql server 查找SQL server中函数的用法

Sql server 查找SQL server中函数的用法,sql-server,tsql,sql-server-2008,Sql Server,Tsql,Sql Server 2008,有没有一种方法可以在SQL server 2008中查找函数的用法?假设“用法”是指“用法统计”,那么可能对您有用。在代码中使用: SELECT * FROM sys.sql_modules WHERE definition LIKE '%MyFunc%' UNION SELECT * FROM sys.computed_columns WHERE definition LIKE '%MyFunc%' UNION SELECT * FROM sys.check_constraints WHERE

有没有一种方法可以在SQL server 2008中查找函数的用法?

假设“用法”是指“用法统计”,那么可能对您有用。

在代码中使用:

SELECT * FROM sys.sql_modules WHERE definition LIKE '%MyFunc%'
UNION
SELECT * FROM sys.computed_columns WHERE definition LIKE '%MyFunc%'
UNION
SELECT * FROM sys.check_constraints WHERE definition LIKE '%MyFunc%'
UNION
SELECT * FROM sys.default_constraints WHERE definition LIKE '%MyFunc%'
我想我已经覆盖了所有的基地


无法使用sys.comments,因为类型为nvarchar(4000)

SQL Server 2012的答案:

SELECT DISTINCT sc.id, 
                so.name 
FROM   syscomments sc 
       INNER JOIN sysobjects so 
         ON so.id = sc.id 
WHERE  sc.TEXT LIKE '%functionname%' 
ORDER  BY 2 

对于SQL2012,使用数据库中的sp_将列出其中的所有用法

  • EXEC sp_依赖于“FunctionNameToSearch”
  • EXEC sp_依赖于“TableNameToSearch”
  • EXEC sp_依赖于“StoredProcNameToSearch”

谢谢您的回复。它是否真的涵盖了所有内容(表、函数、过程和触发器)?为了避免使用UNION、INTERSECT或EXCEPT运算符组合的所有查询在其目标列表中必须具有相同数量的表达式。,请将
*
替换为
CONCAT(OBJECT\u SCHEMA\u NAME(OBJECT\u id),N'',OBJECT\u NAME(OBJECT\u id))由于SchemaObjectName
Per@gbn,您不能使用sys.comments,因为该类型为nvarchar(4000),您在向下投票之前测试过它吗?我刚测试过,syscomments绝对有效。如果要查找的文本超过前4000个字符,则在搜索中找不到该文本。