Выполнение определяемых пользователем функций
Применимо к: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
Связанный контент
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по