연습: Transact-SQL 사용자 정의 함수 디버깅
이 항목은 다음 제품에 적용됩니다.
Visual Studio Ultimate |
Visual Studio Premium |
Visual Studio Professional |
Visual Studio Express |
---|---|---|---|
다음 예제에서는 AdventureWorks2008 데이터베이스에 있는 ufnGetStock이라는 기존 UDF(사용자 정의 함수)를 사용합니다.이 함수는 지정된 ProductID에 대한 재고 항목 수를 반환합니다.
다음 예제에서는 UDF를 여러 번 호출하는 저장 프로시저를 만듭니다.이 저장 프로시저는 여러 다른 매개 변수로 UDF를 호출하므로 UDF를 통해 여러 실행 경로를 수행할 수 있습니다.또한 이 예제에서는 특정 Transact-SQL 개체인 저장 프로시저에서 다른 개체인 함수로 이동하는 방법을 보여 줍니다.이 단계는 연습: Transact-SQL 저장 프로시저 디버깅의 단계와 비슷합니다.
서버 탐색기에서 함수의 코드를 한 단계씩 실행하여 직접 데이터베이스 디버깅을 수행할 수도 있습니다.
사용자 정의 함수를 디버깅하려면
새 SQL Server 프로젝트에서 AdventureWorks2008 샘플 데이터베이스에 연결합니다.자세한 내용은 방법: 서버 탐색기를 사용하여 데이터베이스에 연결을 참조하십시오.
아래의 예제 단원에 있는 코드를 사용하여 새 저장 프로시저를 만들고 이름을 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