사용자 정의 함수 실행Execute User-defined Functions

Transact-SQL을 사용하여 사용자 정의 함수 실행Execute a user defined function using Transact-SQL.

참고: 사용자 정의 함수에 대한 자세한 내용은 사용자 정의 함수Create Function (Transact SQL) 항목을 참고하세요.Note: Visit user defined function and Create Function (Transact SQL for more information about user defined functions.

시작하기 전 주의 사항 Before you begin

제한 사항 Limitations and restrictions

Transact-SQL에서 value 또는 @parameter_name=value를 사용하여 매개 변수를 제공할 수 있습니다.In Transact-SQL, parameters can be supplied either by using value or by using @parameter_name=value. 를 사용하여 제공할 수 있습니다. 매개 변수는 트랜잭션의 일부가 아니므로 나중에 롤백되는 트랜잭션에서 매개 변수가 변경된 경우 해당 매개 변수의 값은 이전 값으로 되돌아가지 않습니다.A parameter is not part of a transaction; therefore, if a parameter is changed in a transaction that is later rolled back, the value of the parameter does not revert to its previous value. 호출자에게 반환되는 값은 항상 모듈이 반환되는 시점의 값입니다.The value returned to the caller is always the value at the time the module returns.

보안 Security

EXECUTE 문을 실행하는 데에는 사용 권한이 필요하지 않습니다.Permissions are not required to run the EXECUTE statement. 그러나 EXECUTE 문자열 내에서 참조되는 보안 개체에 대해서는 사용 권한이 필요합니다 .However, permissions are required on the securables referenced within the EXECUTE string. 예를 들어 문자열에 INSERT 문이 있는 경우 EXECUTE 문의 호출자에게는 대상 테이블에 대한 INSERT 권한이 있어야 합니다.For example, if the string contains an INSERT statement, the caller of the EXECUTE statement must have INSERT permission on the target table. EXECUTE 문이 모듈 내에 포함된 경우에도 EXECUTE 문이 실행될 때는 사용 권한 검사가 수행됩니다.Permissions are checked at the time EXECUTE statement is encountered, even if the EXECUTE statement is included within a module. 자세한 내용은 EXECUTE(Transact-SQL)를 참조하세요.For more information, see EXECUTE (Transact-SQL)

Transact-SQL 사용 Using Transact-SQL

예제Example

이 예제에서는 대부분의 ufnGetSalesOrderStatusText 버전에서 사용할 수 있는 AdventureWorks스칼라 반환 함수를 사용합니다.This example uses the ufnGetSalesOrderStatusText scalar-valued function that is available in most editions of AdventureWorks. 이 함수는 지정된 정수에서 판매 상태 텍스트 값을 반환하는 데 사용됩니다.The purpose of the function is to return a text value for sales status from a given integer. @Status 매개 변수에 1-7 정수를 전달하여 예제를 변경합니다.Vary the example by passing integers 1 through 7 to the @Status parameter.

USE [AdventureWorks2016CTP3]
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; 

-- Result:
-- Order Status: Shipped