우리 고유의 저장 프로 시저가 성공적으로 실행되었는지 여부를 확인하는 데 사용할 수있는 몇 가지 방법을 알고 있습니다. (출력 매개 변수를 사용하여 오류없이 실행 된 경우 저장 프로 시저의 끝에 선택 1과 같은 선택) ...우리 자신의 저장 프로 시저가 성공적으로 실행되었는지 여부를 확인하는 가장 좋은 방법은 무엇입니까
그래서 어느 것이 더 낫고 왜?
우리 고유의 저장 프로 시저가 성공적으로 실행되었는지 여부를 확인하는 데 사용할 수있는 몇 가지 방법을 알고 있습니다. (출력 매개 변수를 사용하여 오류없이 실행 된 경우 저장 프로 시저의 끝에 선택 1과 같은 선택) ...우리 자신의 저장 프로 시저가 성공적으로 실행되었는지 여부를 확인하는 가장 좋은 방법은 무엇입니까
그래서 어느 것이 더 낫고 왜?
SP가 작성되었는지 여부를 명확하게 설명하는 인쇄 명령문이 있으면 더 쉽게 읽을 수 있습니다.
과정에서 오류가 발생하는 경우에
CREATE PROCEDURE CustOrdersDetail @OrderID int
AS
...
...
...
GO
IF OBJECT_ID('dbo.CustOrdersDetail') IS NOT NULL
PRINT '<<< CREATED PROCEDURE dbo.CustOrdersDetail >>>'
ELSE
PRINT '<<< FAILED CREATING PROCEDURE dbo.CustOrdersDetail >>>'
GO
응용 프로그램에서 전화를 거는 경우 어디서 인쇄됩니까? – msvcyc
여러 sp에 대한 스크립트가 응용 프로그램 대신 도구를 통해 호출되는 경우 유용합니다. 응용 프로그램을 통해 단일 sp를 실행하는 경우 PRINT 대신 RETURN 또는 SELECT를 사용하십시오. –
사용 RAISERROR 밖으로 가짜 매개 변수를 사용하는 것보다 대부분의 고객과의 더 나은 통합합니다. 그들은 단순히 프로 시저를 호출하고 RAISERROR는 클라이언트 응용 프로그램에서 예외로 변환되며 예외는 응용 프로그램 코드에서 피하기 어렵습니다. 잡아서 처리해야합니다.
SP는 메소드/서브 루틴/프로 시저와 매우 비슷합니다. & 그들은 모두 완료해야 할 작업이 있습니다. 작업은 계산 결과가 & 인 것처럼 간단 할 수도 있고 테이블의 레코드에 대한 간단한 조작 일 수도 있습니다. 작업에 따라 성공 여부, 실패 여부, 실제 결과 등 작업 결과를 나타내는 out 값을 반환 할 수 있습니다.
전체 프로젝트/데이터베이스에 공통적 인 T-SQL 솔루션이 필요한 경우 모든 절차에 output 매개 변수를 사용할 수 있습니다. 그러나 RAISEERROR는 T-SQL이 아닌 클라이언트 코드에서 오류를 처리하는 방법입니다.
코드에서 처리 할 수있는 다른 반환 값을 사용하지 않는 이유는 무엇입니까?
추가 출력 매개 변수 또는 추가 선택 기능이 필요하지 않습니다.
문제가 있는지 여부를 알아야하는 유일한 경우 성공적인 실행으로 충분합니다. XACT_ABORT 및 TRY ... CATCH here 및 here의 토론을 살펴보십시오.
특정 오류를 알고 싶다면 return code이 발신자에게이 정보를 전달하는 올바른 방법입니다.
대부분의 프로덕션 시나리오에서 솔루션의 일부로 데이터베이스 계층 내에 사용자 지정 오류보고 구성 요소를 배포하는 경향이 있습니다. 약간의 로그 테이블과 오류 로깅 프로세스를 관리하는 몇 가지 저장 프로 시저가 있습니다.
프로덕션 서버에서 실행되는 모든 저장 프로 시저 코드는 SQL Server 2005 이상에서 사용할 수있는 TRY-CATCH-BLOCK 기능을 사용하여 캡슐화됩니다.
이는 드물 긴하지만 주어진 저장 프로 시저가 실패한 경우 발생 된 오류의 세부 사항과 발생한 오류의 세부 사항을 로그 테이블에 기록한다는 것을 의미합니다. 관련 세부 사항을 기록하기 위해 CATCH BLOCK 내에서 간단한 저장 프로 시저 호출이 이루어집니다.이 구현
토대 실제로 온라인
이 원하는해야 here, 당신이 쉽게 따라 전송 될 수있는 DBA 또는 심지어 SMS 경고에 이메일 알림을 통합하여, 예를 들어, 더이 구현을 확장 할 수있는 책에 설명되어 있습니다 오류의 심각도.
이 정렬을 구현하면 저장 프로 시저가 실패를보고하지 않으면 성공한 것입니다.
일단 간단하고 견고한 프레임 워크가 갖추어지면 기본 구현을 복제하여 다른 프로덕션 서버/응용 프로그램 플랫폼으로 롤아웃하는 것이 간단합니다.
특별한 것은 없지만 간단한 오류 로깅과보고 기능 만 있습니다.
반면에 저장 프로 시저의 성공적인 실행을 다시 기록해야하는 경우 로그 테이블을 통합하는 유사한 해결 방법을 고안 할 수 있습니다.
블로그 게시물에 대해이 질문이 비명을 지르고 있다고 생각합니다 ......
저장 프로 시저가 하루에 여러 번 실행됩니까? – fARcRY
여러 번 ..... – odiseh