Исполнения 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