Исполнения T-SQL команд на удаленном сервере с помощью EXECUTE AT

Исполнения T-SQL команд на удаленном сервере с помощью EXECUTE AT

  • Comments 1
  • Likes

Ну, вот. С индексами разобрались. Теперь, как и обещала, короткие (и не очень) сообщения в стиле «Tips & Tricks».

 

Знаете ли вы, что…

 

В предыдущих версиях SQL Server (до SQL Server 2005) команду EXECUTE можно было выполнять только на локальном сервере. В SQL Server 2005 команда EXECUTE имеет параметр AT, который используется для выполнения EXECUTE на удаленном linked сервере.

 

Пример:

--------

 

--Добавим linked сервер на локальной машине:

EXEC sp_addlinkedserver 'SQLSERVER2', 'SQL Server'

 

--Разрешим RPC вызовы

Exec SP_Serveroption 'SQLSERVER2','RPC OUT',TRUE

 

Все готово для выполнения T-SQL команд на linked сервере:

 

EXEC('Select * from AdventureWorksDW..DatabaseLog') AT SQLSERVER2

Comments
  • Круто! какраз искал как еще выполнить update кроме использования ссылко на linked сервер или openquery.... теперь помогло!

    кстати, во забавный прикол - не могу обновить битовое поле в таблице (t1) на linked сервере. Проявилось, когда заказчики привинтили сайт, они активно используют результаты селектов по этой таблице. На обновлении t1.expired я повисаю навсегда :( Может подскажите, что может быть причиной?

    Сам в итоге выкрутился тем, что сделал табличку куда сбрасываю ID записей  и потом обновляю по ним:

    EXEC('update [WSDB].[interchange].[t1]

    set expired = 1

    where ID in (select ID from [WSDB].[interchange].t1_IDS)

    ')

    AT ws

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment