다음을 통해 공유


저장 프로시저 디버그

Transact-SQL 디버거를 사용하면 SQL 저장 프로시저의 SQL 호출 스택, 지역 변수 및 매개 변수를 표시하여 저장 프로시저를 대화식으로 디버그할 수 있습니다. Transact-SQL 디버거는 지역 변수와 매개 변수 보기와 수정, 전역 변수 보기를 지원합니다. 또한 Transact-SQL 스크립트를 디버깅할 때 중단점을 제어하고 관리하는 기능도 제공합니다.

이 예에서는 Transact-SQL 저장 프로시저를 만들고 이를 한 단계씩 실행하여 디버그하는 방법을 보여줍니다.

참고 사항

Transact-SQL 디버깅은 Azure SQL Database 또는 Azure SQL Managed Instance에 사용할 수 없습니다.

저장 프로시저를 디버그하는 방법

  1. 데이터베이스 엔진 쿼리 편집기 창에서, SQL Server 데이터베이스 엔진 인스턴스에 연결합니다. 예제 저장 프로시저를 만들 수 있는 데이터베이스를 선택합니다.

  2. 쿼리 편집기에 다음 코드를 붙여 넣습니다.

    CREATE TABLE [dbo].[Product] ([Id] INT, [Name] NVARCHAR(128))
    
    CREATE PROCEDURE [dbo].[AddProduct]  
    @id INT,  
    @name NVARCHAR(128)  
    AS  
    BEGIN
        INSERT INTO [dbo].[Product] ([Id], [Name]) VALUES (@id, @name) 
        SELECT [Name] FROM [dbo].[Product] WHERE [Id] = @id
        DECLARE @nextid INT
        SET @nextid = @id + 1
        INSERT INTO [dbo].[Product] ([Id], [Name]) VALUES (@id, @name) 
        SELECT [Name] FROM [dbo].[Product] WHERE [Id] = @nextid
    END
    
  3. F5를 눌러 Transact-SQL 코드를 실행합니다.

  4. SQL Server 개체 탐색기에서 같은 데이터베이스 엔진을 마우스 오른쪽 단추로 클릭하고, 새 쿼리…를 선택합니다. 저장 프로시저를 만든 것과 같은 데이터베이스에 연결되어 있어야 합니다.

  5. 쿼리 창에 다음 코드를 붙여 넣습니다.

    EXEC [dbo].[AddProduct] 50, N'T-SQL Debugger Test';  
    GO  
    
  6. 왼쪽 창 여백을 클릭하여 EXEC 문에 중단점을 추가합니다.

  7. Transact-SQL 편집기 도구 모음의 녹색 화살표 단추에 있는 드롭다운 화살표를 누르고 디버거를 사용하여 실행을 선택하여 디버깅이 설정된 상태로 쿼리를 실행합니다.

  8. 아니면 SQL 메뉴에서 디버깅을 시작할 수도 있습니다. SQL ->디버거로 실행을 선택합니다.

  9. 지역 창이 열려 있는지 확인합니다. 창이 열려 있지 않으면 디버그 메뉴를 클릭하고 을 선택한 후 로컬을 선택합니다.

  10. F11 키를 눌러 쿼리를 한 단계씩 실행합니다. 저장 프로시저의 매개 변수와 해당 값이 로컬 창에 표시됩니다. 아니면, INSERT 절의 @name 매개 변수 위에 마우스를 올려도 해당 항목에 할당되는 T-SQL 디버거 테스트를 확인할 수 있습니다.

  11. 텍스트 상자에서 T-SQL 디버거 테스트를 선택합니다. 디버깅하는 동안 Validate Change를 입력하고 엔터 키를 누르면 name 변수의 값이 변경됩니다. 로컬 창에서 해당 값을 변경할 수도 있습니다. 매개 변수 값이 빨간색이 되어 변경되었음을 나타냅니다.

  12. F10 키를 눌러 남아 있는 코드를 단계별로 실행합니다.

  13. 디버깅이 완료되면 제품 테이블을 쿼리하여 내용을 조회합니다.

    SELECT * FROM [dbo].[Products];  
    GO
    
  14. 결과 창을 보면 표에 새 행이 있습니다.