다음을 통해 공유


연습: T-SQL 트리거 디버깅

업데이트: 2007년 11월

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

Edition

Visual Basic

C#

C++

Web Developer

Express

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

Standard

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

Pro 및 Team

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

표의 범례:

항목이 적용됨

해당

항목이 적용되지 않음

해당 없음

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

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

트리거를 디버깅하려면 트리거를 발생시키는 저장 프로시저에 중단점을 설정하고, 트리거에 중단점을 설정한 다음 연습: T-SQL 저장 프로시저 디버깅에 설명된 단계를 수행합니다.

이 예제에서는 Sales.Currency 테이블과 UPDATE 트리거가 있는 AdventureWorks 데이터베이스를 사용합니다. 이 예제에는 테이블의 행을 업데이트함으로써 트리거를 발생시키는 저장 프로시저가 포함되어 있습니다. 트리거에 중단점을 설정하고, 다른 매개 변수로 저장 프로시저를 실행하여 트리거의 다른 실행 경로를 확인할 수 있습니다.

참고:

표시되는 대화 상자와 메뉴 명령은 실제 설정이나 버전에 따라 도움말에서 설명하는 것과 다를 수 있습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기를 선택합니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

SQL 트리거를 디버깅하려면

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

  2. 아래의 첫 번째 예제 섹션에 있는 코드를 사용하여 새 저장 프로시저를 만들고 이름을 UpdateCurrency_T_SQL로 지정합니다. 자세한 내용은 방법: SQL Server 프로젝트 형식으로 개발을 참조하십시오.

  3. UpdateCurrency_T_SQL에 중단점을 설정합니다. 데이터베이스를 직접 디버깅할 경우에는 프로시저의 첫째 줄이 중단점이 되므로 이 작업은 선택적입니다.

  4. 트리거에 대한 중단점을 설정합니다.

    1. 테이블 노드를 마우스 오른쪽 단추로 클릭하고 Sales.Currency 테이블의 노드를 마우스 오른쪽 단추로 클릭한 다음 uCurrency라는 트리거의 아이콘을 두 번 클릭하여 트리거 소스 코드를 엽니다.

    2. SET NOCOUNT ON 문 옆의 회색 여백을 마우스 왼쪽 단추로 클릭하여 트리거에 중단점을 설정합니다. 이 단계는 필수적입니다. 트리거에 중단점을 설정하지 않으면 트리거를 한 단계씩 실행할 때 해당 코드를 건너뛰게 될 수 있습니다.

  5. 저장 프로시저를 한 단계씩 실행합니다. 자세한 내용은 방법: 서버 탐색기를 사용하여 개체 내의 코드를 한 단계씩 실행을 참조하십시오.

    매개 변수 값을 입력하기 위한 저장 프로시저 실행 대화 상자가 나타납니다.

  6. 다음과 같이 매개 변수 값을 설정합니다.

    1. @currencyCode = AAA

    2. @name = My Test Name 같은 임의의 값

    저장 프로시저의 첫 번째 실행 코드 줄인 SET @mynvarchar = @@VERSION 줄에 노란색 화살표로 표시된 지시 포인터가 나타납니다.

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

    1. F11 키 또는 한 단계씩 코드 실행 단추를 사용하여 코드를 단계별로 실행합니다.

      UPDATE 문에서 F11 키를 다시 누르면 트리거가 한 단계씩 실행됩니다.

    2. 저장 프로시저로 다시 나갈 때까지 트리거를 단계별로 실행한 후 나머지 과정을 계속합니다.

  8. 서버 탐색기에서 테이블 아래의 Sales.Currency 노드를 마우스 오른쪽 단추로 클릭하고 테이블 데이터 표시를 클릭하여 데이터가 삽입되었는지 확인할 수 있습니다.

예제

다음은 트리거를 발생시키는 저장 프로시저를 만들기 위한 코드입니다.

ALTER PROCEDURE dbo.UpdateCurrency_T_SQL
    (
        @currencyCode   nvarchar(3),
        @Name           nvarchar(50)           
    )
AS
    SET NOCOUNT ON
    UPDATE Sales.Currency
    SET Name = @Name 
        WHERE CurrencyCode = @currencyCode 
    RETURN

참고 항목

개념

SQL 디버깅

참조

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