查看用户定义函数
有几种系统存储过程和目录视图可提供有关存储过程的信息。使用它们,您可以:
查看函数的定义,也就是用于创建用户定义函数的 Transact-SQL 语句。如果您没有用于创建函数的 Transact-SQL 脚本文件,这会很有用。
获得有关函数的信息(例如函数的架构、创建时间及其参数)。
列出指定函数所使用的对象及使用指定函数的对象。此信息可用来识别那些受数据库中某个对象的更改或删除影响的函数。
查看用户定义函数的定义
查看有关用户定义函数的信息
查看用户定义函数的依赖关系
示例
A. 使用系统目录视图返回用户定义函数信息
下面的示例使用目录视图 sys.objects 和 sys.parameters 返回有关用户定义函数及其参数的信息。
-- Display metadata about the user-defined functions in AdventureWorks2008R2.
USE AdventureWorks2008R2;
GO
SELECT *
FROM sys.objects
WHERE type IN ('IF','TF','FN','FS','FT');
GO
-- Return parameters associated with the functions
SELECT o.name AS FunctionName, p.*
FROM sys.objects AS o
JOIN sys.parameters AS p ON o.object_id = p.object_ID
WHERE type IN ('IF','TF','FN','FS','FT');
GO
B. 使用 OBJECT_DEFINITION
下面的示例使用系统函数 OBJECT_DEFINITION 返回用户定义函数 dbo.ufnGetContactInformation 的定义。
USE AdventureWorks2008R2;
GO
SELECT OBJECT_DEFINITION(OBJECT_ID('dbo.ufnGetContactInformation'));
GO
C. 使用 sys.sql_expression_dependencies
下例使用 sys.sql_expression_dependencies 和 sys.columns 目录视图返回用户定义函数 dbo.ufnGetContactInformation 所依赖的表名和列名。
USE AdventureWorks2008R2;
GO
SELECT OBJECT_NAME(d.referencing_id) AS referencing_entity,
OBJECT_NAME(referenced_id) AS referenced_entity,
referenced_minor_id AS referenced_column_id,
c.name AS referenced_column
FROM sys.sql_expression_dependencies AS d
JOIN sys.columns AS c ON c.object_id = d.referenced_id
AND c.column_id = d.referenced_minor_id
WHERE d.referencing_id = OBJECT_ID(N'AdventureWorks2008R2.dbo.ufnGetContactInformation');