Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server База данных SQL Azure
Выполните определяемую пользователем функцию с помощью 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