powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Distributed Query
5 сообщений из 5, страница 1 из 1
Distributed Query
    #32027281
Снарк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Суть проблемы : нужно Update таблицу на Production server данными взятыми из такой же таблицы на
Development server

таблички :
CREATE TABLE [dbo].[A] ([ID] [int] NOT NULL , [char] (10)) ON [PRIMARY]
GO
CREATE TABLE [dbo]. ([ID] [int] NOT NULL , [char] (10)) ON [PRIMARY]
GO

Содержимое :
Select * from A
1 AA
2 B
4 DD

Select * from B
1 A
3 C
4 D

делаем Update из таблицы A в таблицу B (обе таблицы на Development Servere - просто для теста)

UPDATE dbo.B
Set U=A.U FROM A, B
WHERE A.ID = B.ID
GO
(2 row(s) affected)

Select * from B
1 AA
3 C
4 DD

- все получилось.

Теперь то же самое на двух разных серверах : таблица A на
Development server, таблица B на Production server, запускаем скрипт с Development server

Update OPENDATASOURCE('SQLOLEDB','Data Source=Production;User ID=User1;Password=secret').test.dbo.B
Set U=Src.U FROM OPENDATASOURCE('SQLOLEDB','Data Source=Production;User ID=User1;Password=secret').test.dbo.B As Dst, A As Src
WHERE Src.ID = Dst.ID
GO
(3 row(s) affected)

Select * from B

1 AA
3 DD
4 AA
- не получилось !
пробовал несколько разных вариантов, в том числе c OPENROWSET - результат тот же -
неправильный - хотя и одинаковый !
А теперь вопрос - где грабли ?
...
Рейтинг: 0 / 0
Distributed Query
    #32027288
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из твоего вопроса не совсем понятно что именно не проходит обновление на удаленном сервере
или последующая выборка из локальной таблицы B?
...
Рейтинг: 0 / 0
Distributed Query
    #32027352
Snark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Obnovlenie na udalennom servere prohodit no ne tak kak ozhidalos' :
(kogda A i B tablicy na lokal'nom servere obnovleie i vyborka prohodjat korrektno)
v tablice B na udalennom servere posle obnovlenija dolzhno byt'
Select * from B
1 AA
3 C
4 DD
vmesto etogo na udalennom servere tablica B obnovljaetsja takim obrazom :
Select * from B
1 AA
3 DD
4 AA

Tablica A nahoditsja na lokal'nom servere, tablica B nahoditsja na udalennom servere
Nuzhno skopirovat' dannye iz A v B takim obrazom chtoby v tablice B obnovilis' zapisi v sootvetstvii s obshimi primary keys v A i v B
...
Рейтинг: 0 / 0
Distributed Query
    #32027394
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так ?

Update OPENDATASOURCE('SQLOLEDB','Data Source=Production;User ID=User1;Password=secret').test.dbo.B
Set U=Src.U FROM A As Src
INNER REMOTE JOIN OPENDATASOURCE('SQLOLEDB','Data Source=Production;User ID=User1;Password=secret').test.dbo.B As Dst ON Src.ID = Dst.ID

ЗЫ
А почему вы не используете linked server ? Разве удобно каждый раз писать в запросах такие "паравозы" ?
...
Рейтинг: 0 / 0
Distributed Query
    #32027499
Snark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Uzhe nashel problemu. "the INSERT, UPDATE, and DELETE statements are not supported on the remote table if the table does not have a unique index defined on it."
Postavil Primary key on ID v obeih tablicah i vse zarabotalo. Linked servers teper' pol'zuju, hotja okazalos' chto eto tozhe ne panaceja, IDENTITY_INSERT oni ne podderzhivajut, kak Vy sami zametili.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Distributed Query
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]