다음을 통해 공유


사용자 정의 함수 실행

적용 대상: 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 스칼라 반환 함수를 사용합니다. 이 함수는 지정된 정수에서 판매 상태 텍스트 값을 반환하는 데 사용됩니다. @Status 매개 변수에 1~7 정수를 전달하여 예시를 변경합니다.

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