개발/MSSQL

[MSSQL SERVER 기본에서 실무까지] 오류 및 처리건수 시스템변수 3-11

여름너무더워 2021. 12. 20. 14:18
  • MSSQL 시스템 변수란?
    • MSSQL 서버의 설정 파일이나 MSSQL 서버의 명령행 인자를 통해 설정되는 변수
    • 시스템 변수는 MSSQL 서버에서 정의한 고정된 이름을 가지고 있음
  • @@ERROR
    • 방금 실행한 SQL 문장에 오류가 있는지 체크
  • @@RORWCOUNT
    • 방금 실행한 SQL 문장의 행이 몇개를 실제로 처리했는지 체크
  • 주의사항
    • @@ERROR. @@ORWCOUNT 변수는 바로 이전의 실행 결과만을 보관하므로 값 변경을 확인할 경우 신경써서 볼것
  • CODE
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    CREATE TABLE #T매출(
         일자        NVARCHAR(08)
        ,제품        NVARCHAR(30)
        ,수량    NUMERIC(18,0DEFAULT 0 NOT NULL --기본값 0설정
        ,PRIMARY KEY (일자, 제품)
        )
        SELECT 작업번호 = '1-1', [ERROR] = @@ERROR , [ROWCOUNT] = @@ROWCOUNT
     
    INSERT INTO #T매출 (일자, 제품, 수량)
        VALUES ('20200101''A1' , 10)
            ,('20200102''A2'20)
            ,('20200103''A3'30)
     
            SELECT 작업번호 = '2-0', [ERROR] = @@ERROR , [ROWCOUNT] = @@ROWCOUNT
            SELECT 작업번호 = '2-1', [ERROR] = @@ERROR , [ROWCOUNT] = @@ROWCOUNT
     
        UPdate A set
               A.수량 = 15
          FROM #T매출 A
          WHERE A.일자 = '20200101'
            AND A.제품 = 'A1'
     
          SELECT 작업번호 = '3-0', [ERROR] = @@ERROR , [ROWCOUNT] = @@ROWCOUNT
          SELECT 작업번호 = '3-1', [ERROR] = @@ERROR , [ROWCOUNT] = @@ROWCOUNT
     
          --삭제
          DELETE A
            FROM #T매출 A
           WHERE A.일자 = '20200101'
             AND A.제품 = 'A4'
     
          SELECT 작업번호 = '4-0', [ERROR] = @@ERROR , [ROWCOUNT] = @@ROWCOUNT
          SELECT 작업번호 = '4-1', [ERROR] = @@ERROR , [ROWCOUNT] = @@ROWCOUNT
     
          SELECT A.*
            FROM #T매출 A
     
          SELECT 작업번호 = '5-0', [ERROR] = @@ERROR , [ROWCOUNT] = @@ROWCOUNT
          SELECT 작업번호 = '5-1', [ERROR] = @@ERROR , [ROWCOUNT] = @@ROWCOUNT
     
     
    c

결과

  • 2-0 에서 INSERT 3건 수행
  • 3-0 에서 UPDATE 1건 수행
  • 4-0 에서 DELETE 0건 수행
  • 5-0 에서 SELECT 3건 수행