연습: 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 저장 프로시저 디버깅의 단계와 비슷합니다.
서버 탐색기에서 함수를 한 단계씩 실행하여 데이터베이스를 직접 디버깅할 수도 있습니다.
사용자 정의 함수를 디버깅하려면
새 SQL Server 프로젝트에서 AdventureWorks 샘플 데이터베이스에 대한 연결을 설정합니다. 자세한 내용은 방법: 데이터베이스에 연결을 참조하십시오.
아래의 예제 섹션에 있는 코드를 사용하여 새 저장 프로시저를 만들고 이름을 Test_ufnGetStock으로 지정합니다. 자세한 내용은 방법: SQL Server 프로젝트 형식으로 개발을 참조하십시오.
Test_ufnGetStock에 중단점을 설정합니다. 데이터베이스를 직접 디버깅할 경우에는 프로시저의 첫째 줄이 중단점이 되므로 이 작업은 선택적입니다.
UDF ufnGetStock에 중단점을 설정합니다.
서버 탐색기의 함수 노드를 마우스 오른쪽 단추로 클릭하고 ufnGetStock 아이콘을 두 번 클릭하여 UDF의 소스 코드를 엽니다.
DECLARE 문 옆의 회색 여백을 마우스 왼쪽 단추로 클릭하여 중단점을 설정합니다.
저장 프로시저를 한 단계씩 실행합니다. 프로시저에 매개 변수가 있으면 해당 값을 입력하라는 저장 프로시저 실행 대화 상자가 나타납니다. 이 예제에서는 매개 변수가 모두 저장 프로시저 안에 하드 코드되어 있습니다. 자세한 내용은 방법: 서버 탐색기를 사용하여 개체 내의 코드를 한 단계씩 실행을 참조하십시오.
다른 디버깅 기능을 사용해 봅니다.
F11 키 또는 한 단계씩 코드 실행 단추를 사용하여 코드를 단계별로 실행합니다. SELECT 문에서 F11 키를 다시 누르면 UDF 코드가 한 단계씩 실행됩니다. 저장 프로시저로 다시 나갈 때까지 UDF를 단계별로 실행한 후 디버깅을 계속합니다.
입력 매개 변수에 따라 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