USE DB, który może nie istnieć
Mam skrypt, który maUSE DATABASE
komunikat. Skrypt działa doskonale, jeśli baza danych istnieje. Jeśli nie istnieje, zawodzi z komunikatem „baza danych nie istnieje”, co ma sens.
Teraz nie zawiodłem, więc dodałem czek, aby wybrać, czy baza danych istnieje w sys.databases (które tutaj będę reprezentować za pomocąIF 1=2
sprawdź dla uproszczenia), więc jeśli DB istnieje (1 = 1), uruchom instrukcję „use”.
Ku mojemu zdziwieniu, skrypt zawiódł. Próbowałem więc dodać blok TRY CATCH. Ten sam wynik. Wydaje się, że instrukcja use jest oceniana wcześniej niż cokolwiek innego, co jest dość denerwujące, ponieważ teraz mój skrypt może się zepsuć.
Moje pytanie brzmi: jak mogę miećuse
oświadczenie dotyczące skryptu do bazy danych, która może nie istnieć?
BEGIN TRY
IF (1=1) BEGIN --if DB exists
USE DB_THAT_MAY_NOT_EXIST
END
END TRY
BEGIN CATCH
END CATCH