Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как отловить и подавить ошибку коннекта к связаному серверу?  [new]
АндрейИванов
Member

Откуда:
Сообщений: 64
Добрый день.

Подскажите, как отловить и подавить ошибку коннекта к связаному серверу?

Так не работает:

BEGIN TRY 
INSERT INTO temp1 
SELECT field1 FROM [192.168.167.166].[DB1].[dbo].table1;
END TRY 
BEGIN CATCH  
INSERT INTO temp1(field1) VALUES ('192.168.167.166 ОШИБКА ПОДКЛЮЧЕНИЯ');  
END CATCH; 
25 дек 17, 14:33    [21060529]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить и подавить ошибку коннекта к связаному серверу?  [new]
АндрейИванов
Member

Откуда:
Сообщений: 64
Вместо того чтобы записать

'192.168.167.166 ОШИБКА ПОДКЛЮЧЕНИЯ'

Запрос просто отваливается с ошибкой подключения.
25 дек 17, 14:37    [21060546]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить и подавить ошибку коннекта к связаному серверу?  [new]
АндрейИванов
Member

Откуда:
Сообщений: 64
Как сделать чтобы при ошибке подключения писалось в табличку нужное мне сообщение ВМЕСТО ошибки соединения и прерывания запроса?
25 дек 17, 14:42    [21060566]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить и подавить ошибку коннекта к связаному серверу?  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
вроде должно сработать.
DECLARE @tsql NVARCHAR(MAX) = 'INSERT INTO [temp1] SELECT field1 FROM [192.168.167.166].[DB1].[dbo].[table1];'
;
BEGIN TRY 
  EXEC sp_executesql @tsql
END TRY 
BEGIN CATCH  
  INSERT INTO [temp1]( [field1] ) VALUES ( '192.168.167.166 ОШИБКА ПОДКЛЮЧЕНИЯ' );  
END CATCH; 
25 дек 17, 14:44    [21060577]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить и подавить ошибку коннекта к связаному серверу?  [new]
ptr128
Member

Откуда: Moscow
Сообщений: 398
EXEC (N'INSERT INTO temp1 SELECT field1 FROM [192.168.167.166].[DB1].[dbo].table1')
IF @@ERROR<>0 INSERT INTO temp1(field1) VALUES ('192.168.167.166 ОШИБКА ПОДКЛЮЧЕНИЯ')


Иначе на компиляции уже падает, до начала выполнения.
25 дек 17, 14:47    [21060594]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить и подавить ошибку коннекта к связаному серверу?  [new]
ptr128
Member

Откуда: Moscow
Сообщений: 398
Руслан Дамирович,

простите, писал долго (
25 дек 17, 14:48    [21060598]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить и подавить ошибку коннекта к связаному серверу?  [new]
АндрейИванов
Member

Откуда:
Сообщений: 64
Руслан Дамирович
вроде должно сработать.
DECLARE @tsql NVARCHAR(MAX) = 'INSERT INTO [temp1] SELECT field1 FROM [192.168.167.166].[DB1].[dbo].[table1];'
;
BEGIN TRY 
  EXEC sp_executesql @tsql
END TRY 
BEGIN CATCH  
  INSERT INTO [temp1]( [field1] ) VALUES ( '192.168.167.166 ОШИБКА ПОДКЛЮЧЕНИЯ' );  
END CATCH; 




Так сработало, спасибо!!!


Но почему с insert напрямую, без переменной не срабатывает? о_О
25 дек 17, 14:52    [21060625]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить и подавить ошибку коннекта к связаному серверу?  [new]
АндрейИванов
Member

Откуда:
Сообщений: 64
ptr128
EXEC (N'INSERT INTO temp1 SELECT field1 FROM [192.168.167.166].[DB1].[dbo].table1')
IF @@ERROR<>0 INSERT INTO temp1(field1) VALUES ('192.168.167.166 ОШИБКА ПОДКЛЮЧЕНИЯ')


Иначе на компиляции уже падает, до начала выполнения.



И так тоже работает, спасибо!
25 дек 17, 14:54    [21060640]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить и подавить ошибку коннекта к связаному серверу?  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Определение недоступности линкед-сервера
25 дек 17, 14:55    [21060648]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить и подавить ошибку коннекта к связаному серверу?  [new]
ptr128
Member

Откуда: Moscow
Сообщений: 398
АндрейИванов
Но почему с insert напрямую, без переменной не срабатывает? о_О

ptr128
Иначе на компиляции уже падает, до начала выполнения.
25 дек 17, 14:55    [21060649]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить и подавить ошибку коннекта к связаному серверу?  [new]
АндрейИванов
Member

Откуда:
Сообщений: 64
ptr128
АндрейИванов
Но почему с insert напрямую, без переменной не срабатывает? о_О

ptr128
Иначе на компиляции уже падает, до начала выполнения.



Да, я уже понял :)
25 дек 17, 14:58    [21060667]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить