연결된 서버에서 저장 프로 시저를 실행할 때 발생하는 SQL 오류를 잡으려고합니다. 내가 직접에 저장 프로 시저를 실행하면SQL Server 2005에서 연결된 서버가있는 CATY가 작동하지 않음
RAISERROR('An error', 16, 1);
: 두 서버는 나는 다음과 같은 코드를 실행 올리기 오류라는 연결된 서버에 저장 프로 시저를 생성 한 문제를 증명하기 위해 SQL 서버를 2005
를 실행 예상대로 내가 '오류'를 설정 한 결과를 얻을 다음 코드를 사용하여 연결된 서버, '16'은 (즉 코드는 catch 블록을 입력) :
BEGIN TRY
EXEC [dbo].[RaiseError];
END TRY
BEGIN CATCH
DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int;
SELECT @ErrMsg = ERROR_MESSAGE(), @ErrSeverity = ERROR_SEVERITY();
SELECT @ErrMsg, @ErrSeverity;
END CATCH
내 로컬 서버에서 다음 코드를 실행하면 연결된 서버에서 저장 프로 시저를 실행하려면 SSMS는 링크 된 경우
BEGIN TRY
EXEC [Server].[Catalog].[dbo].RaiseError
END TRY
BEGIN CATCH
DECLARE @SPErrMsg nvarchar(4000), @SPErrSeverity int;
SELECT @SPErrMsg = ERROR_MESSAGE(), @SPErrSeverity = ERROR_SEVERITY();
SELECT @SPErrMsg, @SPErrSeverity;
END CATCH
내 질문은 내가 발생하는 오류를 잡을 수있다 나에게 메시지 '쿼리 오류 완료', .MSG 50000, 수준 16, 상태 1, 프로 시저 RaiseError, 선 (13) 오류를 '제공 서버 저장 프로 시저가 실행됩니까?
미리 감사드립니다.
사실. 기술 자료 http://msdn.microsoft.com/en-us/library/ms191515.aspx에서 설명합니다. sysadmin 역할 또는 ALTER TRACE 권한이있는 사용자가 필요하고 WITH LOG를 사용하여 20에서 25까지의 심각도로 오류를 발생시키지 않으므로 성가신니다. –