执行用户定义函数
适用于: SQL Server Azure SQL 数据库
使用 Transact-SQL 执行用户定义函数
必须使用至少由两部分组成名称的函数 (<schema>.<function>
) 来调用标量函数。 有关详细信息,请参阅 CREATE FUNCTION (Transact-SQL)。
限制
在 Transact-SQL 中,可通过使用 <value>
或使用 @parameter_name = <value>
来提供参数。 参数不是事务的一部分。 因此,如果在以后回退的事务中更改了参数,则该参数的值不会恢复为以前的值。 返回给调用方的值总是模块返回时的值。
权限
运行 EXECUTE 语句无需权限。 但是,EXECUTE
字符串内引用的安全对象上需要权限。 例如,如果字符串包含 INSERT 语句,则 EXECUTE
语句的调用方必须对目标表具有 INSERT
权限。 在遇到 EXECUTE
语句时,即使 EXECUTE
语句包含于模块内,也将检查权限。 有关详细信息,请参阅 EXECUTE。
使用 Transact-SQL
此示例中所使用的 ufnGetSalesOrderStatusText
标量值函数在大多数 AdventureWorks2022
版本中都适用。 该函数的目的是为来自给定整数的销售状态返回文本值。 通过将整数 1 至 7 传递到 @Status
参数来更改示例。
USE [AdventureWorks2022]
GO
-- Declare a variable to return the results of the function.
DECLARE @ret NVARCHAR(15);
-- Execute the function while passing a value to the @status parameter
EXEC @ret = dbo.ufnGetSalesOrderStatusText @Status = 5;
-- View the returned value.
-- The Execute and Select statements must be executed at the same time.
SELECT N'Order Status: ' + @ret;
下面是结果。
Order Status: Shipped