powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Изменение данных при репликации
10 сообщений из 10, страница 1 из 1
Изменение данных при репликации
    #32033273
Леха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Каким образом можно во вторую, идентичную реплицируемой, таблицу записать измененное значение (флаг) не зависимо от того какой там был раньше.
надеялся можно в фильтре прописать
Select col1,col2, 1 FROM <<TABLE>> WHERE ...
фиг...
Как то можно через DTS...
а как ...
...
Рейтинг: 0 / 0
Изменение данных при репликации
    #32033334
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь (включая автора) понял вопрос?
...
Рейтинг: 0 / 0
Изменение данных при репликации
    #32033344
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а какой RowFilter прописывал?
...
Рейтинг: 0 / 0
Изменение данных при репликации
    #32033425
Леха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для GreenSunrise:
Две таблицы в разных базах.
Из первой во вторую переносятся данные с флагом Col3=1
Из второй в первую та же картина.
чтобы не летала запись туда сюда нужно сохранять в подписчика Col3=0. Как реализовать? :)

Для AAron:
SELECT <published_columns> FROM <<TABLE>> WHERE Col3=1
Или они разных типов бывают?
Если нет- какая теперь разница, (для меня)
Есть еше в свойстве Table Article Properties-> commands - (ну команды, процедуры)
Если туда загнать процедуру которая будет изменять значение поля Col3 на 0.
...
Рейтинг: 0 / 0
Изменение данных при репликации
    #32033432
Олег Яговкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO, если репликация merge, то записи с любым флагом "летать туда сюда" не будут т.к. есть поле rowguid автоматически создающееся при настройке репликации по кот. агенты репликации и ориентируются для уникального определения записи.

Если вам необходимо собирать записи с разных серверов, возможно лучше создать в таблице для каждой записи идентификатор сервера и его применить в фильтре.

Если вы используете флаг для своих целей, возможно не стоить применять его в репликации.
Может я так же чего то недопонял т. к. две таблицы - слабый пример для системы репликации. Необходимо рассматривать саму задачу для кот. эти две таблицы применяются.
...
Рейтинг: 0 / 0
Изменение данных при репликации
    #32033577
Леха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый Олег Яговкин, думаю было бы нахальством просить сделать за меня работу :)
Плохо объяснил, попробую еще раз.
Есть два сервера (на каждом публикуются данные). С каждого данные отсылаются Push подпиской с использованием фильтра Col3=1 (т.е. передавать только измененные записи, у которых Col3=1, остальные изменения не учитывать).
Как я понимаю, если было сделано обновление (независимо руками или репликацией) изменения публикуются и отправляются на другой сервер, где делают обновление.

“то записи с любым флагом "летать туда сюда" не будут т.к. есть поле rowguid” – я вот и не пойму почему не будет обновления. Вроде изменения есть. Rowguid – сравнивается с подписчиком и если совпадает – не публикуется – так что ли?
...
Рейтинг: 0 / 0
Изменение данных при репликации
    #32033597
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так а зачем сохранять на подписчике col3 = 0? С чего запись будет "туда-сюда" летать?! С настроенным фильтром будут проходить только изменения записей, соответствующих ему. Но уж никак не "туда-сюда" :-))) Или Вы хотите, чтобы поле col3 вообще не участвовало в репликации? И было различным на паблишере и подписчике? Тогда стоит задуматься о публикации не таблиц, а вьюх.
...
Рейтинг: 0 / 0
Изменение данных при репликации
    #32033622
Олег Яговкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Леха.
В догонку GreenSunrise(так как в выходные нету интернету).

>>Вроде изменения есть. Rowguid – сравнивается с подписчиком и если совпадает – не публикуется – так что ли?

При любых операциях с записью в системе репликации отрабатываются триггеры(кот. так же уст-ся автоматически). Данные триггеры заносят все изменения в системные табл. репликации которые затем читаются агентами репликации. Т.е. если есть изменения для записи с данным rowguid, то она соответствующим образом изменяется как на публикующем, так и на подписчике.


>>с использованием фильтра Col3=1 (т.е. передавать только измененные записи, у которых Col3=1, остальные изменения не учитывать).

Если же вам необходимо например из 1000 записей в табл. выделить напр. 100 (с Col3=1) (для ваших каких то целей)то при работе агентов репликации, изменения производимые в этих записях (т.к. они участвуют в фильтре) и будут передаваться между двумя таблицами.

Если же вы вручную (в смысле программно) устанавливаете флаг для измененных записей чтобы их и передавать, то при репликации это не нужно.
...
Рейтинг: 0 / 0
Изменение данных при репликации
    #32033723
Леха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>>С настроенным фильтром будут проходить только изменения записей, соответствующих ему
Согласен, но фильтр в обеих публикациях одинаковый

>>Или Вы хотите, чтобы поле col3 вообще не участвовало в репликации? И было различным на >>паблишере и подписчике? Тогда стоит задуматься о публикации не таблиц, а вьюх.
Надеюсь, будет понятно из нижеизложенного. :)

>>Если же вам необходимо например из 1000 записей в табл. выделить напр. 100 (с Col3=1) (для >>ваших каких то целей)то при работе агентов репликации, изменения производимые в этих >>записях (т.к. они участвуют в фильтре) и будут передаваться между двумя таблицами.

>>Если же вы вручную (в смысле программно) устанавливаете флаг для измененных записей >>чтобы их и передавать, то при репликации это не нужно.

И то и другое.
Дело в том, что данные должны передаваться не при всех изменениях, т.е. если, например, изменения в Col1- обновлять (причем изменение может таковым считаться при изменении на конкретные значения), если в Col2 –нет – можно еще сказать о зависимости от того, например, какой пользователь изменяет (это я просто так сказал :)).

>>. Т.е. если есть изменения для записи с данным rowguid, то она соответствующим образом >>изменяется как на публикующем, так и на подписчике.

Уточню :), она - rowguid (в том числе)? Если да, то, что делать, если строка изменилась, но не прошла по фильтру, в следующий раз при изменении удовлетворяющем фильтрации rowguid на подписчике не найдется, и запись будет INSERTнута – а ключ вставляемой записи в таблице уже есть.

И на счет “туда сюда” проверял я, агенты при изменении любой записи начинают показывать, что «выполняется одна транзакция 2 команды». Завершения этого я не дождался (оставлял на ночь :)). Или оно так и быть надо?

Спасибо за советы.
...
Рейтинг: 0 / 0
Изменение данных при репликации
    #32033735
Олег Яговкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Уточню :), она - rowguid (в том числе)?

rowguid не меняется . Это уникальный идентификатор кот. сервер присваивает каждой записи. Значение этого идентификатора складывается из идентификатора сетевой карты(кот. уникален в мире насколько я понял) и какого то временного интервала. Т. е. при INSERT записи вставляется каждый раз новый GUID (уникальный в мире до 3500 года, что гарантирует Microsoft) и дальнейшие изменения записи отслеживаются триггерами репликации.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Изменение данных при репликации
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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