다음을 통해 공유


연습: Transact-SQL 사용자 정의 함수 디버깅

이 항목은 다음 제품에 적용됩니다.

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional

Visual Studio Express

ms165047.DoesApplybmp(ko-kr,VS.100).gif ms165047.DoesApplybmp(ko-kr,VS.100).gif ms165047.DoesApplybmp(ko-kr,VS.100).gif ms165047.DoesNotApplybmp(ko-kr,VS.100).gif

다음 예제에서는 AdventureWorks2008 데이터베이스에 있는 ufnGetStock이라는 기존 UDF(사용자 정의 함수)를 사용합니다.이 함수는 지정된 ProductID에 대한 재고 항목 수를 반환합니다.

다음 예제에서는 UDF를 여러 번 호출하는 저장 프로시저를 만듭니다.이 저장 프로시저는 여러 다른 매개 변수로 UDF를 호출하므로 UDF를 통해 여러 실행 경로를 수행할 수 있습니다.또한 이 예제에서는 특정 Transact-SQL 개체인 저장 프로시저에서 다른 개체인 함수로 이동하는 방법을 보여 줍니다.이 단계는 연습: Transact-SQL 저장 프로시저 디버깅의 단계와 비슷합니다.

서버 탐색기에서 함수의 코드를 한 단계씩 실행하여 직접 데이터베이스 디버깅을 수행할 수도 있습니다.

사용자 정의 함수를 디버깅하려면

  1. 새 SQL Server 프로젝트에서 AdventureWorks2008 샘플 데이터베이스에 연결합니다.자세한 내용은 방법: 서버 탐색기를 사용하여 데이터베이스에 연결을 참조하십시오.

  2. 아래의 예제 단원에 있는 코드를 사용하여 새 저장 프로시저를 만들고 이름을 Test_ufnGetStock으로 지정합니다.자세한 내용은 방법: SQL Server 데이터베이스 프로젝트 또는 서버 프로젝트를 사용하여 디버깅을 참조하십시오.

  3. Test_ufnGetStock에 중단점을 설정합니다.직접 데이터베이스 디버깅에서는 프로시저의 첫째 줄이 중단점 역할을 수행하기 때문에 이 단계는 선택 사항입니다.

  4. UDF ufnGetStock에 중단점을 설정합니다.

    1. 서버 탐색기에서 함수 노드를 마우스 오른쪽 단추로 클릭하고 ufnGetStock 아이콘을 두 번 클릭하여 UDF의 소스 코드를 엽니다.

    2. DECLARE 문 옆에 있는 회색 여백을 마우스 왼쪽 단추로 클릭하여 중단점을 설정합니다.

  5. 저장 프로시저의 코드를 한 단계씩 실행합니다.프로시저에 매개 변수가 있는 경우 저장 프로시저 실행 대화 상자가 나타나고 매개 변수 값을 묻는 메시지를 표시합니다.이 경우 매개 변수는 모두 저장 프로시저 내에 하드 코딩됩니다.자세한 내용은 방법: 서버 탐색기를 사용하여 개체의 코드를 한 단계씩 실행을 참조하십시오.

  6. 다른 디버깅 기능을 사용해 봅니다.

    1. F11 키나 한 단계씩 코드 실행 단추를 사용하여 코드를 한 단계씩 실행합니다.SELECT 문에서 F11 키를 다시 누르면 UDF의 코드가 한 단계씩 실행됩니다.다시 저장 프로시저로 나갈 때까지 UDF의 코드를 한 단계씩 실행하고 계속합니다.

    2. 입력 매개 변수에 따라 UDF의 여러 다른 실행 경로를 확인할 수 있습니다.지역 창에서 또는 커서를 위에 놓으면 UDF의 변수 값을 확인할 수 있습니다.

다음은 사용자 정의 함수를 호출하는 저장 프로시저의 코드입니다.

ALTER PROCEDURE Test_ufnGetStock 
AS
    SELECT dbo.ufnGetStock(1) as CurrentStock   -- non-zero inventory
    SELECT dbo.ufnGetStock(316) as CurrentStock -- zero inventory
    SELECT dbo.ufnGetStock(5) as CurrentStock   -- no such product

참고 항목

개념

Transact-SQL 디버깅

관련 자료

Server Explorer/Database Explorer