FIX: SQLAgent 작업이 실패할 수 및 SQL Server 에서 출력 잃게 Transact-SQL 일괄 처리의 RAISERROR 문이 있는 호출이 발생할 수 있습니다.

기술 자료 번역 기술 자료 번역
기술 자료: 309802 - 이 문서가 적용되는 제품 보기.
중요한 이 문서에서는 레지스트리 수정 방법에 대한 정보가 들어 있습니다. 수정하기 전에 레지스트리를 백업하는 것이 있는지 확인하십시오. 문제가 발생하는 경우 레지스트리를 복원하는 방법을 알고 있어야 합니다. 백업, 복원 및 레지스트리 수정 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
256986Microsoft Windows 레지스트리에 대한 설명
모두 확대 | 모두 축소

이 페이지에서

현상

SQLAgent 작업 단계 유형을 Transact-SQL 스크립트 때 및 때 새 작업 단계-< SQL Server 인스턴스 이름 > 명령 필드에 문 대화 상자 호출 Transact-SQL RAISERROR 문이 심각도가 11 수준 또는 높은 WITH LOG 옵션을 사용하지 않고, 실패한 결과로 작업이 종료됩니다. 그러나 모든 Transact-SQL 문 뒤에 RAISERROR 문을 실행할 실행 호출할 수 있지만 모든 출력을 표시하지 않습니다. 출력 후 RAISERROR 문에 대해 생성된 따라서 문 실행합니다. 실제로 이 작업 문에서 발생한 문제점에 대한 혼동이 발생할 수 있습니다. 실제로 실행된 보려는 경우 SQL 프로필러 추적을 시 찾아야 합니다. SQL 프로필러 추적에 대한 자세한 내용은 SQL Server 온라인 설명서의 "SQL 프로필러에서" 항목을 참조하십시오.

해결 방법

경고 레지스트리를 잘못 또는 다른 방법을 사용하여 레지스트리 편집기를 사용하여 수정할 경우 심각한 문제가 발생할 수 있습니다. 이 문제를 해결하려면 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 이러한 문제를 해결할 수 있음을 보증하지 않습니다. 레지스트리 수정에 따른 모든 책임은 수정하십시오.

서비스 팩 정보

이 문제를 해결하려면 Microsoft SQL Server 2000의 최신 서비스 팩을 구하십시오. 추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
290211최신 SQL Server 2000 서비스 팩을 구하는 방법

핫픽스 정보

이 핫픽스의 영어 버전은 다음 표에 나열된 파일 특성(또는 그 이후의 파일 특성)이 있습니다. 이러한 파일의 시간과 날짜는 UTC (협정 세계시) 로 나열됩니다. 파일 정보에서는 현지 시간으로 변환됩니다. UTC와 로컬 시간의 차이를 알려면 제어판의 날짜 및 시간 도구에서 표준 시간대 탭을 사용하십시오.
   Date         Time   Version         Size       File name
   -------------------------------------------------------------------
   31-May-2003  05:15  2000.80.818.0      78,400  Console.exe
   27-Oct-2003  14:51  2000.80.873.0     315,968  Custtask.dll
   30-Jan-2004  02:59  2000.80.911.0      33,340  Dbmslpcn.dll
   24-Apr-2003  12:42                    786,432  Distmdl.ldf
   24-Apr-2003  12:42                  2,359,296  Distmdl.mdf
   29-Jan-2003  12:25                        180  Drop_repl_hotfix.sql
   11-Sep-2003  13:56  2000.80.859.0   1,905,216  Dtspkg.dll
   26-Aug-2003  06:46  2000.80.854.0     528,960  Dtspump.dll
   23-Jun-2003  09:10  2000.80.837.0   1,557,052  Dtsui.dll
   23-Jun-2003  09:10  2000.80.837.0     639,552  Dtswiz.dll
   23-Apr-2003  13:21                    747,927  Instdist.sql
   02-May-2003  12:26                      1,581  Inst_repl_hotfix.sql
   30-Jan-2004  02:59  2000.80.911.0      90,692  Msgprox.dll
   31-Mar-2003  12:37                      1,873  Odsole.sql
   30-Jan-2004  02:59  2000.80.911.0      62,024  Odsole70.dll
   30-Jan-2004  02:59  2000.80.911.0      25,144  Opends60.dll
   30-Jan-2004  02:59  2000.80.911.0      57,904  Osql.exe
   02-Apr-2003  09:45  2000.80.797.0     279,104  Pfutil80.dll
   04-Aug-2003  04:47                    550,780  Procsyst.sql
   11-Sep-2003  11:07                     12,305  Qfe469315.sql
   22-May-2003  09:27                     19,195  Qfe469571.sql
   29-Jan-2004  11:47                  1,090,380  Replmerg.sql
   30-Jan-2004  02:59  2000.80.911.0     221,768  Replprov.dll
   30-Jan-2004  02:59  2000.80.911.0     307,784  Replrec.dll
   29-Jan-2004  09:54  2000.80.911.0     159,813  Replres.rll
   05-Sep-2003  10:30                  1,087,150  Replsys.sql
   13-Aug-2003  02:58                    986,603  Repltran.sql
   30-Jan-2004  02:59  2000.80.911.0     287,304  Rinitcom.dll
   30-Jan-2004  02:59  2000.80.911.0      57,916  Semnt.dll
   29-Jul-2003  06:43  2000.80.819.0     492,096  Semobj.dll
   31-May-2003  04:57  2000.80.818.0     172,032  Semobj.rll
   02-Jan-2004  06:12  2000.80.904.0      53,832  Snapshot.exe
   09-Dec-2003  06:37                    117,834  Sp3_serv_uni.sql
   04-Feb-2004  11:16  2000.80.913.0      28,672  Sqlagent.dll
   04-Feb-2004  11:17  2000.80.913.0     311,872  Sqlagent.exe
   07-Jan-2004  09:08  2000.80.905.0     126,976  Sqlakw32.dll
   30-Jan-2004  02:59  2000.80.911.0   4,215,360  Sqldmo.dll
   07-Apr-2003  04:14                     25,172  Sqldumper.exe
   29-Jan-2004  09:47  2000.80.911.0      28,672  Sqlevn70.rll
   30-Jan-2004  02:59  2000.80.911.0     180,792  Sqlmap70.dll
   02-Sep-2003  13:26  2000.80.857.0     188,992  Sqlmmc.dll
   02-Sep-2003  09:33  2000.80.857.0     479,232  Sqlmmc.rll
   21-Oct-2003  10:38  2000.80.871.0     401,984  Sqlqry.dll
   30-Jan-2004  02:59  2000.80.911.0      57,920  Sqlrepss.dll
   04-Feb-2004  11:18  2000.80.913.0   7,610,449  Sqlservr.exe
   30-Jan-2004  02:59  2000.80.911.0     590,396  Sqlsort.dll
   30-Jan-2004  02:59  2000.80.911.0      45,644  Sqlvdi.dll
   30-Jan-2004  02:59  2000.80.911.0     106,588  Sqsrvres.dll
   30-Jan-2004  02:59  2000.80.911.0      33,340  Ssmslpcn.dll
   30-Jan-2004  02:59  2000.80.911.0      82,492  Ssnetlib.dll
   30-Jan-2004  02:59  2000.80.911.0      25,148  Ssnmpn70.dll
   27-Oct-2003  14:51  2000.80.873.0     123,456  Stardds.dll
   30-Jan-2004  02:59  2000.80.911.0     158,240  Svrnetcn.dll
   30-Jan-2004  02:59  2000.80.911.0      76,416  Svrnetcn.exe
   30-Apr-2003  10:22  2000.80.816.0      45,132  Ums.dll     
   30-Jan-2004  02:59  2000.80.911.0      98,872  Xpweb70.dll
참고 파일 종속 관계로 인해 가장 최근의 핫픽스나 이러한 파일이 포함된 기능을 추가 파일이 들어 있습니다.

이 핫픽스를 적용한 후 SQL Server 에이전트 동작은 새 레지스트리 DWORD 값 다음 레지스트리 하위 키 중 하나를 호출할 TruncateJobResultOnError에 의해 정의됩니다.
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQLServer\SQLServerAgent (default instance)
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\SQLServerAgent (named instance)
새 동작을 사용하려면 이 TruncateJobResultOnError 값을 0으로 설정하십시오. SQL Server 에이전트를 다시 시작하면 raiserror 문에 의해 더 이상 작업 결과가 잘립니다. 레거시 동작을 복원하려면 TruncateJobResultOnError 값을 1로 설정할 수 있습니다. 값이 설정되어 있지 않으면 기본값은 입니다.

경고 throw된 중인 오류로 인해 무한 루프가 있는 스크립트를 경우 0 값을 변경하려는 효과적인 방법은 않을 수 있습니다. 에이전트 오류 계속 기록하고 디스크 공간을 모두 사용할 수 있습니다.

해결 과정

이 문제를 해결하려면 요구 사항에 따라 다음 방법 중 하나를 사용하십시오.

방법 1

사용하려는 심각도 수준을 결정합니다
  • RAISERROR 문을 정보 제공 목적으로 호출하려는 경우 오류 메시지에 대해 심각도 수준이 10 사용해야 합니다. 심각도 수준이 10 사용자가 잘못된 정보를 입력한 때문에 문제가 발생했음을 나타내는 정보 메시지를 나타냅니다.
  • RAISERROR 문을 호출할 때 일괄 처리를 중단하려면 심각도가 20 이상인 오류 메시지에 대한 사용해야 하며, WITH LOG 옵션이 RAISERROR 문을 포함해야 합니다. 이렇게 하면 RAISERROR 문이 호출이 중단된 후에 실행할 것으로 예상되는 모든 Transact-SQL 문 및 열린 모든 트랜잭션이 자동으로 롤백됩니다.

    심각도 수준에 대한 자세한 내용은 SQL Server 온라인 설명서의 "오류 메시지 심각도 수준" 항목을 참조하십시오.

방법 2

작업 단계의 스크립트 파일에서 사용
RAISERROR 문을 호출할 얼마나 자주 관계 없이 실행하는 전체 스크립트 원하는 심각도 수준 수가 20 미만인 경우 작업 단계가 스크립트 파일에서 사용할 수 있습니다. 이렇게 하려면 다음과 같이 하십시오.
  1. 스크립트 파일에 저장하십시오.
  2. SQL Server 에이전트 작업 CmdExec 작업 단계를 만들고 단계에서 스크립트 파일을 실행하십시오.

    다음은:
    osql -E -i c:\script.sql
스크립트 파일을 사용할 때 SQL 쿼리 분석기를 사용하여 일괄 처리를 실행할 경우 발생하는 osql 유틸리티를 사용하여 일괄 처리를 실행할 경우 동일한 결과를 받게 됩니다.

심각도 수준이 WITH LOG 옵션이 20개 이상인 RAISERROR 문을 호출하는 닫으려면, 연결 및 RAISERROR 호출 건너뛴 후 실행할 것으로 예상되는 모든 문이 됩니다.

현재 상태

Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열된 Microsoft 제품에서 이 문제를 확인했습니다. 이 문제는 Microsoft SQL Server 2000 서비스 팩 4에서 처음 수정되었습니다.

추가 정보

SQL Server 에이전트 작업 단계의 RAISERROR 문이 오류 메시지의 심각도 수준 2-9 경우 실패한 결과 끝나는 작업 및 작업 단계. 그러나 출력 RAISERROR 문이 일괄 처리에서 다음에 실행할 문의 표시하지 않습니다지 않습니다.

오류의 심각도 수준이 있는 RAISERROR 메시지 경우 문을 10, 1 또는 0, 작업 및 작업 단계가 성공적으로 실행됩니다. 따라서 이 문서의 "현상" 절에서 설명한 문제가 발생하지 않습니다.

isql 유틸리티는 SQL 쿼리 분석기, osql 유틸리티를 사용하여 동일한 SQL 스크립트를 실행할 경우 SQL Server 에이전트 작업이 실패하고 있지만 예상한 결과를 받게 됩니다.

Windows Mobile 기반 스마트폰에 GPRS 연결이 구성되어 있는지 확인합니다

  1. 새 SQL Server 에이전트 작업 함께 TSQL Transact-SQL 스크립트 작업 단계를 만듭니다.
  2. Type or paste the following Transact-SQL statement in the Command box.
       select convert(varchar(50), @@version) as ' SQL Server Version Number'
       raiserror('Test raiserror with severity 10', 10, 1)
       select id, convert(varchar(12), name) as 'Table Name' 
        from sysobjects where id < 4
  3. 고급 탭에서 TSQL Transact-SQL 스크립트 명령 옵션 섹션 C:\Raiserror.log출력 파일 상자에 입력하십시오.
  4. 추가 옵션을 선택합니다.
  5. 적용 을 누른 다음 확인 을 누릅니다.
  6. 적용 을 누른 다음 확인 을 누릅니다.
  7. SQL Server 엔터프라이즈 관리자에서 만든 SQL Server 에이전트 작업에 마우스 오른쪽 단추로 클릭한 다음 작업 시작 을 클릭하십시오.
  8. SQL 프로필러 추적 시작하십시오.
  9. For the same SQL Server Agent job step, change the severity level to 11 by replacing the command in the job step as follows.
       select convert(varchar(50), @@version) as ' SQL Server Version Number'
       raiserror('Test raiserror with severity 11', 11, 1)
       select id, convert(varchar(12), name) as 'Table Name' 
        from sysobjects where id < 4
  10. 작업을 다시 실행하십시오.
Raiserror.log 파일에서 생성된 결과 같습니다.
Job 'raiserror' : Step 1, 'test raiserror' : Began Executing 2002-07-23 15:48:59

SQL Server Version Number                         
--------------------------------------------------
Microsoft SQL Server  2000 - 8.00.534 (Intel x86) 

(1 rows(s) affected)

Test raiserror with severity 10 [SQLSTATE 01000]
id          Table Name  
----------- ------------
1           sysobjects
2           sysindexes
3           syscolumns

(3 rows(s) affected)

Job 'raiserror' : Step 1, 'test raiserror' : Began Executing 2002-07-23 15:49:17

SQL Server Version Number                         
--------------------------------------------------
Microsoft SQL Server  2000 - 8.00.534 (Intel x86) 

(1 rows(s) affected)

Msg 50000, Sev 11: Test raiserror with severity 11 [SQLSTATE 42000]

이 Raiserror.log 파일에서 심각도 수준이 10 작업에서 모든 출력을 출력 파일을 인쇄한 및 작업의 성공적인 결과를 얻은 것을 볼 수 있습니다.

이 Raiserror.log 파일에서 심각도 수준이 11 중 처음 두 명령문에는 출력을 출력 파일에 인쇄한 및 작업이 실패한 결과를 얻은 것을 볼 수 있습니다. 또한, RAISERROR 메시지 심각도 수준이 10 정보 형식으로 대신 오류 메시지 형식이 있습니다. 추적 파일을 모든 문이 성공적으로 실행되었는지 보여 줍니다.

2-9 숫자로 심각도 수준을 변경할 경우 출력 않는 표시되지 및 단계의 및 작업에 대한 작업 결과 실패합니다. 메시지 형식을 심각도가 11 이상인에 대한 오류 메시지 형식은 동일하게 설정됩니다.

속성

기술 자료: 309802 - 마지막 검토: 2007년 11월 2일 금요일 - 수정: 5.5
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
키워드:?
kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug kbpending KB309802 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com