我正在寻找一个SQL查询,输出数据库目录中所有用户定义函数的函数定义.
我已经找到了
SELECT OBJECT_DEFINITION (OBJECT_ID(N'dbo.UserFunctionName')) AS [Object Definition]
和
SELECT ROUTINE_NAME FROM information_schema.routines WHERE routine_type = 'function'
但我不能想到或找到一种方法来将ROUTINE_NAME列表提供给OBJECT_ID.
这里的目的是在用于数据库更改分析的数据库中用户定义的函数定义的可搜索文本,如果类似于完整的sql过程或所需的帮助程序之类的东西更容易,我将这样做并发布.
解决方法
SELECT name,definition,type_desc FROM sys.sql_modules m INNER JOIN sys.objects o ON m.object_id=o.object_id WHERE type_desc like '%function%'