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 Countsprawdzić + Throwlub Try- Catch- Throwaby 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