ちょうどように余分な「守り」、次のバージョンは> 1のマッチングの可能性(ただしそう)のアカウントに型変換エラーを生成Schema
する方法検証コードに類似の、多くの場合、意図的にスロー例外の私はにそれの良いを信じて、私はそれの信じているから考えられるすべての戻り結果を説明するための「 'ベストプラクティス'」ではありませんが、致命的な例外を生成するだけであっても、通常、処理を停止する既知の効果は、トラップされていないエラーの不明なカスケード効果よりも優れているためです。それは非常に低いですので、私はそれの価値が別々のトラブルとは思いませんでしたCount
チェック+ Throw
またはTry
- Catch
- Throw
それにもかかわらず、よりユーザーフレンドリーな致命的なエラーが、まだ致命的なエラーを発生させます。
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