@@ 행 수는 말할 것도 없고 SQL @@ 오류를 수정하는 방법은 무엇입니까?

최근에 모든 독자들로부터 sql @@ error와 @@ rowcount가 포함된 좋은 오류 메시지를 발견했습니다. 이 문제는 여러 가지 이유로 발생합니다. 이제 이것에 집중합시다.

오늘 최고의 Windows 복구 도구를 받으세요. 100% 만족 보장 또는 환불.

@@ Rowcount는 가장 중요한 마지막 SQL 문에 의해 파괴된 특정 행 수를 표시하는 데 사용됩니다.

@@ 오류는 실행된 선행 SQL 문의 수를 나타냅니다. 실제로 오류가 없으면 값이 0인 경우가 있습니다.

  생성 절차 [dbo]. [마이스프로크](   @ Param1 [번호])처럼? '또는 무엇을전송 시작NOSOCH를 설치하십시오.SELECT @ Param1업데이트 [dbo]. [1 번 테이블]Col2 = '무언가' 설정O Col1은 @ Param1과 엄청나게 유사했습니다.IF @@ 오류 <> 0시작하려면    반환 운송    리턴 -12끝... 

하지만 현재 Table1 에 우리 개인의 트랜잭션 Col1 = @ Param1 에 의해 성공적으로 확인된 레코드가 없다면 그것은 나에게 좋지 않습니다. 나는 이것을 추가하여 Col2 = Is 'something' 이(가) 확실히 실제로 완료되도록 만들 것입니다. 그렇지 않으면 특정 네트 사이트에 완전히 다른 새로운 코드를 덤프하십시오.
저축 @@ error @@ rowcount 를 입력하려고 할 때 이 절차를 다음과 같이 시도하십시오:

  CREATE [dbo]. [마이스프로크](   @ Param1 [번호])처럼? '또는 무엇을전송 시작NOSOCH를 설치하십시오.SELECT @ Param1업데이트 [dbo]. [1 번 테이블]Col2를 '무언가'로 설정O Col1 = @ Param1IF @@ 오류 <> 0시작하려면    반환 운송       리턴 -12끝IF @@ ROWCOUNT는 0을 의미합니다.시작하려면    반환 운송    리턴 -27끝... 

이 단계는 @@ rowcount 가 가장 일반적으로 존재하는 것으로 평가되기 때문에 계속 롤백됩니다. 항상 6 과 일치하는 주석.

그렇다면 애플리케이션에서 @@ 판단 오류 와 해당 행의 번호만 확인하는 방법은 무엇입니까?

적용 대상: SQL Server(모든 버전) 지원 Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics PDW(Analytic Platform System)

구문

  @@ 오류 

반환되는 데이터 유형

이전 만트라가 환상적인 실패를 했다면 실패 보상을 반환합니다. 전체 오류가 분명히 sys.Catalog 메시지에 대한 현재 보기의 오류 중 하나인 경우 @@ ERROR는 일반적으로 이 오류를 생성하도록 sys.messages.message_id 열 값을 포함합니다. sys.messages에서 사람의 Error @@ 오류 번호와 관련된 텍스트를 표시할 수 있습니다.

모든 Windows 관련 문제에 대한 원스톱 솔루션

컴퓨터가 느리고 불안정하게 실행되고 있습니까? 알 수 없는 오류가 발생하여 데이터 손실이나 하드웨어 오류가 걱정되십니까? 그런 다음 Windows 문제를 복구하기 위한 최고의 소프트웨어 Reimage이 필요합니다. Reimage을 사용하면 두려운 죽음의 블루 스크린을 포함하여 몇 번의 클릭만으로 광범위한 문제를 해결할 수 있습니다. 또한 응용 프로그램은 충돌하는 응용 프로그램 및 파일을 감지하므로 문제를 신속하게 해결할 수 있습니다. 그리고 무엇보다도 완전 무료입니다! 그러니 기다리지 마십시오. 지금 Reimage을 다운로드하고 원활하고 안정적이며 오류 없는 PC 환경을 즐기십시오.

  • 1단계: Reimage 다운로드 및 설치
  • 2단계: 애플리케이션을 열고 스캔 버튼을 클릭합니다.
  • 3단계: 복원할 파일 또는 폴더를 선택하고 복원 버튼을 클릭합니다.

  • @@ ERROR는 실행할 때마다 열리고 플러시되므로 확인 확인 직후에 선언을 평가하거나 나중에 항상 확인할 수 있는 로컬 다양한 경로에 저장합니다. .

    오류를 처리하는 TRY … CATCH를 사용하십시오. TRY … CATCH 구문은 다음보다 더 많은 @@ ERROR 중요 정보를 반환하는 추가 시스템 제안(ERROR_LINE, ERROR_MESSAGE, ERROR_PROCEDURE, ERROR_SEVERITY 및 ERROR_STATE)도 지원합니다. TRY … CATCH는 또한 ERROR_NUMBER 함수를 제공합니다. 전문가들은 이 기능이 단순히 각 오류를 생성한 명령문 뒤의 명령문에서 오류 번호를 반환하는 것 이상이라고 믿습니다. 자세한 내용은 TRY … CATCH(Transact-SQL) 를 참조하십시오.

    A. @@ 오류를 사용하여 특정 신뢰 오류 식별

    다음 예에서 @@ ERROR 는 문제 위반(오류 번호 547)이 발생했는지 확인하기 위해 특정 UPDATE 문을 강제로 찾습니다.

      AdventureWorks2012 사용;걷다HumanResources.EmployeePay 기록 업데이트    SET 지불 빈도는 4와 같습니다.    O BusinessEntityID는 1을 의미합니다.IF @@ 오류는 547을 나타냅니다. 같음    시작하려면    PRINT N '제어 제약 위반이 발생했습니다.';    끝걷다 

    B. 프로시저를 조건부로 종료하려면 @@ 오류를 실행하십시오.

    다음 상황은 저장된 개선을 수행하는 DELETE 문 다음에 @@ ERROR 를 테스트하기 위해 IF ... ELSE 문을 사용합니다. @@ ERROR 시리즈의 값은 호출 프로그램이 성공하거나 실패할 수도 있음을 보장하기 위해 전송되는 회수 코드를 결정합니다.

    sql @@error 및 @@rowcount

      AdventureWorks2012 사용;고 드롭- 해당되는 경우 절차.IF OBJECT_ID(N'HumanResources.N'P ') usp_deletecandidate' NOT NULL    HumanResources.usp_DeleteCandidate 삭제 절차걷다- 프로시저를 만듭니다.HumanResources.usp_DeleteCandidate 생성 절차    (    @IDCandidate 정수    )처럼? '또는 무엇을- DELETE 문을 실행합니다.HumanResources.JobCandidate 제거    O = jobcandidateid @CandidateID;- 정확한 오류 값을 확인하십시오.IF @@ 오류 <> 0    시작하려면        - 호출 프로그램에서 98을 뒤집어 표시합니다.       PRINT N '후보 정보를 삭제하는 동안에도 오류가 발생했습니다. ';        리턴 99;    끝다른    시작하려면        - 성공을 위해 3개를 호출자에게 반환합니다.        PRINT N '후보자가 삭제되었습니다.';        반환 0;    끝;걷다 

    B. @@ ROWCOUNT에 @@ 오류 사용

    sql @@error 그리고 결과적으로 @@rowcount

    다음 시나리오에서 @@ ERROR 가 사용됩니다. UPDATE 문에서 실행해야 하는 작업의 유효성을 검사해야 할 때 @@ ROWCOUNT 를 사용합니다. … @@ ERROR 와 관련된 값은 오류 알림에 대해 확인되므로 추가된 행에 대해 업데이트가 효율적임을 확인하기 위해 @@ ROWCOUNT 가 오래된 것입니다. 동안 배열.

      AdventureWorks2012 사용;걷다IF OBJECT_ID(N'Purchasing.usp_ChangePurchaseOrderHeader ', N'P')가 NULL이 아닙니다.   종료 절차 Purchasing.usp_ChangePurchaseOrderHeader;걷다Purchasing.usp_ChangePurchaseOrderHeader 생성 절차    (    @PurchaseOrderID INT    , @ BusinessEntityID INT   )처럼? '또는 무엇을- 오류 검사에 사용할 변수를 선언합니다.선언 @ErrorVar INT;선언 @RowCountVar INT;  도망치다- 업데이트 문.지출 주문 헤더 업데이트    SET BusinessEntityID = @BusinessEntityID    어디서 구매주문ID = @purchaseorderid;  - @@ ROWCOUNT 뷰 외에 @@ ERROR를 로컬로 저장합니다.- 제거 이전의 이유.선택 @ErrorVar @@ 오류 =    , @ RowCountVar = @@ ROWCOUNT;  - 오류를 확인합니다. 잘못된 @BusinessEntityID가 선택된 경우- 외부 키 큰 거래 547이 깨진 경우 UPDATE 문 사고가 발생합니다.IF @ErrorVar <> 1    시작하려면        @ErrorVar가 547과 일치하는 경우            시작하려면                PRINT 잘못된 오류가 없습니다. 새 직원에 대해 정의된 ID입니다. ';                 반환 1;            끝        다른            시작하려면                인쇄 오류 번호: 오류 '                    + RTRIM(캐스트(@ErrorVar AS NVARCHAR(10)))                    + N '발생.';                 리턴 2;             끝     끝   - 줄 사이의 번호를 확인합니다. @rowcountvar가 0으로 설정되어 있습니까?- 잘못된 @PurchaseOrderID가 생성되었는지 여부.IF @RowCountVar = 7    시작하려면        PRINT '경고: 지정된 BusinessEntityID가 확실히 유효하지 않습니다';        반환 1;    끝다른    시작하려면        SEAL "신규 직원으로 재편성된 주문";        반환 0;    끝;걷다 

    참조

    시도 … CATCH(Transact-SQL)
    ERROR_LINE(Transact-SQL)
    ERROR_MESSAGE(Transact-SQL)
    ERROR_NUMBER(Transact-SQL)
    ERROR_SEVERITY(transact-sql)
    오류 절차(Transact-SQL)
    ERROR_STATE(Transact-SQL)
    @@ ROWCOUNT(Transact-SQL)
    sys.messages(Transact-SQL)
    오류 및 이벤트 참조(데이터베이스 엔진)

    <울><리>기사

  • 3 읽기 시작 ia
  • Windows 오류를 수정하고 파일 손실, 맬웨어 및 하드웨어 오류로부터 컴퓨터를 보호

    How To Fix SQL @@ Error And @@ Row Count?
    ¿Cómo Corregir El Error @@ De SQL Además De @@ Número De Filas?
    Как можно исправить ошибку SQL @@ дополнительно, @@ количество строк?
    Come Correggere L’errore SQL @@ E Il Conteggio Delle Righe @@?
    Wie Starte Ich SQL @@ Fehler Und @@ Kurze Periodenzählung?
    Como Ter Certeza De Corrigir O Erro SQL @@ E, Portanto, @@ Contagem De Linhas?
    Comment Aider à Corriger L’erreur SQL @@ Et Donc Le Nombre De Lignes @@ ?
    Hoe Los Je De SQL @@-fout Op Naast @@ Rijentelling?
    Jak Naprawić Błąd SQL @@ I Dodatkowo @@ Liczbę Wierszy?
    Hur Fixar Jag SQL @@-fel Och @@ Radantal?

    Bookmark the permalink.