그냥 할 수 추가, 다음 버전>의 가능성 (그러나 가능성)을 설명하는 형식 변환 오류가 발생 "방어" 1 일치하는 Schema
의 경우 유효성 검사 코드가 종종 의도적으로 예외를 throw하는 것과 유사합니다. 예외적으로 예외를 throw하는 것이 좋으며 모든 가능한 반환 결과를 설명하는 것이 "최상의 방법"이라고 생각합니다.하지만 치명적인 예외를 생성하는 경우 일지라도 처리 중지의 알려진 영향은 일반적으로 트래핑되지 않은 오류의 알려지지 않은 계단식 효과보다 낫습니다. 가능성이 희박하기 때문에 별도의 Count
검사 + Throw
또는 Try
-Catch
-의 문제가 발생하지 않아도 사용자 친화적 인 치명적 오류가 발생하지만 여전히 치명적인 오류는 발생하지 않을 것으로 생각했습니다.
SS 2005- :
declare @HasSchemaX bit
set @HasSchemaX = case (select count(1) from sys.schemas where lower(name) = lower('SchemaX')) when 1 then 1 when 0 then 0 else 'ERROR' end
SS 2008+ :
declare @HasSchemaX bit = case (select count(1) from sys.schemas where lower(name) = lower('SchemaX')) when 1 then 1 when 0 then 0 else 'ERROR' end
다음은 :
if @HasSchemaX = 1
begin
...
end -- if @HasSchemaX = 1
출처
2017-06-22 19:36:02
Tom
허용 대답을 변경하는 것을 고려하십시오. 당신이 받아 들인 대답이 실제로 당신을 위해 쓰여진대로 작용할 가능성은 없습니다. –