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

??, ???. ? ????????? ???????????. ??????, ??? ? ???????, ???????? (? ?? ?????) ????????? ? ????? «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

  • Anonymous
    January 01, 2003
    Круто! какраз искал как еще выполнить 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