Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Distributed Query
|
|||
|---|---|---|---|
|
#18+
Суть проблемы : нужно 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 - результат тот же - неправильный - хотя и одинаковый ! А теперь вопрос - где грабли ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2002, 05:40 |
|
||
|
Distributed Query
|
|||
|---|---|---|---|
|
#18+
из твоего вопроса не совсем понятно что именно не проходит обновление на удаленном сервере или последующая выборка из локальной таблицы B? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2002, 07:21 |
|
||
|
Distributed Query
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2002, 16:46 |
|
||
|
Distributed Query
|
|||
|---|---|---|---|
|
#18+
А так ? 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 ? Разве удобно каждый раз писать в запросах такие "паравозы" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2002, 06:31 |
|
||
|
Distributed Query
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2002, 16:09 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3486&tid=1823156]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 273ms |
| total: | 384ms |

| 0 / 0 |
