Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к:SQL Server
Azure SQL Database
SQL база данных в Microsoft Fabric
Выполните определяемую пользователем функцию с помощью 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 , которая доступна в большинстве выпусков AdventureWorks2025. Функция предназначена для возврата текстового значения для состояния продаж из заданного целого числа. Изменяйте пример путем передачи целых чисел 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