執行使用者定義函式

適用於:SQL ServerAzure SQL Database

使用 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