Piszę procedurę przechowywaną, która uruchamia kwerendy SELECT
na kilku różnych połączonych serwerach przy użyciu notacji z 4 kropkami.Sprawdź, czy podłączony serwer SQL działa
Problem polega na tym, że jeśli jeden z połączonych serwerów nie działa, zapytanie kończy się niepowodzeniem z błędem 121 ('The semaphore timeout period has expired')
. Inne zapytania nie będą wtedy działać, ponieważ ten błąd zatrzyma wykonywanie pozostałych zapytań.
Chciałem sprawdzić @@ERROR
, a następnie kontynuować uruchamianie innych zapytań.
Jak kontynuować wyświetlanie zapytania, jeśli połączenie z jednym z połączonych serwerów nie działa?
Używam SQL 2012.
Witamy na połączonych serwerach, lepiej znanych jako rozwiązanie o wysokiej dostępności. Spróbuj zaprojektować rozwiązanie bez/połączonego serwera. –
@ Czy próbowałeś używać [TRY CATCH] (http://msdn.microsoft.com/en-us/library/ms175976.aspx) –
spójrz na: http://stackoverflow.com/questions/4442772/ sql-server-catch-exception-and-continue. Czy to jist tego, co próbujesz zrobić? – RandomUs1r