Wystarczy być dodatkowo „obronny”, dodaje się wersja generuje błąd typu konwersji do konta możliwość (jednak mało prawdopodobne)> 1 dopasowywania Schema
„s podobny do sposobu kod weryfikacyjny często celowo Rzut Wyjątek s, ponieważ uważam, że dobrze jest i wierzę, że to „Najlepsza praktyka” ”uwzględniająca wszystkie możliwe wyniki zwracania, choć mało prawdopodobne, a nawet jeśli ma to na celu tylko wygenerowanie krytycznego wyjątku, ponieważ znane efekty zatrzymania przetwarzania są zwykle lepsze niż nieznane kaskadowe skutki niezabezpieczonych błędów. Ponieważ jest to wysoce nieprawdopodobne, nie sądziłem, że warto osobno Count
sprawdzić + Throw
lub Try
- Catch
- Throw
aby wygenerować bardziej przyjazny dla użytkownika błąd krytyczny, ale mimo to błąd krytyczny.
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
Następnie:
if @HasSchemaX = 1
begin
...
end -- if @HasSchemaX = 1