Я пытаюсь вставить данные из таблицы на одной машине в таблицу на другой машине, если эта запись не существует, но я не уверен, как это сделать.вызов хранимой процедуры вставки на другом компьютере с использованием TSQL
Для уточнения
Там в таблицу с именем tblAssortments на сервере X.
Там в таблице с именем сортиментов на сервере Y.
сервер у имеет хранимая процедура с именем RegisterAssortment вида:
BEGIN
SET NOCOUNT ON;
if not exists (select 1 from AssortmentRegEx where id = @id and code = '^' + @ProductCode + '$')
begin
insert into AssortmentRegEx
values (newid(), 1, @id, '', '1,2', '^' + @ProductCode + '$', '', @ProductCode)
end
END
На машине X есть хранимая процедура с именем SynchronizeAssortments. Предполагается открыть курсор и пропустить все записи. Затем он вызывает RegisterAssortment для каждой записи.
Но вот где я застрял. Я попытался использовать openquery для вызова sproc на другой машине, но он не работает для операторов insert. Что-то вроде этого:
while @@fetch_status = 0
begin
openquery(ws422, 'exec yy.dbo.RegisterAssortment ', @ProductCode, @id)
fetch next from assortmentCursor
end
но openquery не работает, как это. Каков хороший способ решить эту проблему?
Это была действительно связанная проблема с сервером, и нет необходимости в openquery. Его работа теперь благодарит вас – Laurijssen