다음을 통해 공유


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

업데이트: 2007년 11월

이 항목은 다음 언어에 적용됩니다.

Edition

Visual Basic

C#

C++

Web Developer

Express

항목이 적용되지 않음 항목이 적용되지 않음 항목이 적용되지 않음 항목이 적용되지 않음

Standard

항목이 적용되지 않음 항목이 적용되지 않음 항목이 적용되지 않음 항목이 적용되지 않음

Pro 및 Team

항목이 적용됨 항목이 적용됨 항목이 적용됨 항목이 적용됨

표의 범례:

항목이 적용됨

해당

항목이 적용되지 않음

해당 없음

항목이 적용되지만 명령은 기본적으로 숨겨짐

명령은 기본적으로 숨겨져 있습니다.

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

이 예제에서는 UDF를 여러 번 호출하는 저장 프로시저를 만듭니다. 이 저장 프로시저는 매번 다른 매개 변수를 사용하여 UDF를 호출하므로 UDF의 실행 경로는 여러 가지일 수 있습니다. 또한 이 예제에서는 하나의 T-SQL 개체(저장 프로시저)에서 다른 개체(함수)로 이동하는 방법을 보여 줍니다. 이 단계는 연습: T-SQL 저장 프로시저 디버깅의 단계와 비슷합니다.

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

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

  1. 새 SQL Server 프로젝트에서 AdventureWorks 샘플 데이터베이스에 대한 연결을 설정합니다. 자세한 내용은 방법: 데이터베이스에 연결을 참조하십시오.

  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

참고 항목

개념

SQL 디버깅

참조

서버 탐색기/데이터베이스 탐색기