Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Создание linked server на сервере подписчике через снэпшот-репликацию 2008R2.  [new]
МистерШоу
Member

Откуда:
Сообщений: 21336
Мое почтение!

2008R2.

Требуется выполнять репликацию ХП, при этом на подписчиках необходимо
иметь определенный линкед-сервер.

Пр попытке включить в бифо-скрипт вызов вроде
IF NOT EXISTS
(
SELECT 1 FROM sys.sysservers
WHERE srvname = 'ANAME'
)
EXEC master.dbo.sp_addlinkedserver ...
GO

получаем законное:

The procedure 'sys.sp_addlinkedserver' cannot be executed within a transaction.

поскольку, видимо, к этому моменту механизм репликации транзакцию уже открыл.

Каких-либо опций управления я не вижу, в инете по данной теме с первого захода также
не нашел рецептов.
Поэтому решил попробовать нештатный трюк.
В пре-скрипте репликации делаю вызов COMMIT, после которого вызовы создания
линкед сервера. Теперь работает. Видимо. как и полагается, коммит штатного
механизма перед вызовом смотрит состояние транзакции, далее ошибки не возникает.
Учитывая, что в данной конкретной репликации на подписчика передается только
логика (ХП), думаю оставить такую схему, хотя едва ли это согласуется
с "бэстпрактис". Что скажете, какие приходят в голову обходные варианты?


Пресветлый старец Фалоим Московскый.
тимтэг:некоммерческое товарищество "Напиджак",
издательство "Московский Пустомолец"

Картинка с другого сайта.
24 июн 14, 12:18    [16211057]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить