Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
на сервере-издателе id_type - identity автоинкрементное, type на подписчике не identity.
Работаю через 2008-ю Studio, в 2005-й отказывался создавать подписчика для публикатора 2008-сервера.
16 апр 09, 19:31    [7075445]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
разница только в названии табличек и названии колонок, типы и зависимости те же самые.
16 апр 09, 19:32    [7075446]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
id_type - identity и автоинкрементное в таблице на издателе, type - не identity на подписчике.
16 апр 09, 19:34    [7075462]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
Mr Marmelad
Member [заблокирован]

Откуда: Boston MA
Сообщений: 2957
RG,

А как оказалось что названия разные - это критично?
16 апр 09, 19:34    [7075464]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
Mr Marmelad
Member [заблокирован]

Откуда: Boston MA
Сообщений: 2957
RG,

Вроде бы Таблички называются одинаково, нет?
16 апр 09, 19:36    [7075470]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
переношу данные базы на другой сервак, там нужно изначально закладывать архитектуру по правилам, например, если было название поля type, а сущность называется material, нужно чтоб поле называлась material_type, name - material_name, id - id_material и т.д., чтоб было меньше путаницы в больших запросах.
16 апр 09, 19:43    [7075483]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
я уже писала, что разобралась в том как настраивать репликацию для таблиц с разными названиями, вопрос в том как настроить репликацию с разными названиями колонок.
16 апр 09, 19:46    [7075491]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
Mr Marmelad
Member [заблокирован]

Откуда: Boston MA
Сообщений: 2957
RG,

1. ALTER TABLE type ALTER COLUMN id_type int NOT FOR REPLICATION;
2. Action if name is in use : Keep Existing object unchanged
3. Alter sp_MSins_dboDB_FREESPACE_STATS
4. Alter sp_MSupd_dboDB_FREESPACE_STATS
5. Alter sp_MSdel_dboDB_FREESPACE_STATS

По вашим усовиям. Всё очень просто. Единственное что я могу сказать - наду бы это делать на SSMS а не в VSTS. Проще.
16 апр 09, 19:49    [7075496]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
Mr Marmelad
Member [заблокирован]

Откуда: Boston MA
Сообщений: 2957
Ну конечно же я ошибся скопировав свои процедурки. Ваши будут похожи на

3. Alter sp_MSins_dbotype
4. Alter sp_MSupd_dbotype
5. Alter sp_MSdel_dbotype

Или подобное. Разжевать сильнее?
16 апр 09, 19:53    [7075502]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
да, если не сложно, не совсем поняла.
16 апр 09, 19:57    [7075513]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
автор
ALTER TABLE type ALTER COLUMN id_type int NOT FOR REPLICATION

т.е. эта колоночка в репликации участвовать не будет?
автор
Action if name is in use : Keep Existing object unchanged

т.е. колонка перенесется с тем же названием?

а alter что делает?
автор
3. Alter sp_MSins_dbotype
4. Alter sp_MSupd_dbotype
5. Alter sp_MSdel_dbotype
16 апр 09, 20:02    [7075526]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
Mr Marmelad
Member [заблокирован]

Откуда: Boston MA
Сообщений: 2957
RG,

Ваш IDENTITY колоночка не должна реплицироваться автоматически. Для этого устанавливается NOT FOR REPLICATION. Процессом создания репликации формируется целый набор скриптов (автоматически) Один из них может убить Вашу табличку на подписчике и создать копию публекуемой таблички. Длй атого чтобы этого не произошло делается Action if name is in use.
Созданные автоматически стандартные Stored Procedures названия которых приведены в списке - просто сгенерированные действия на INSERT DELETE & UPDATE. если Вы их откроете и покапаетесь Вы увидите что там всё просто и Вам надо просто сделать условия

WHERE id_type = type что нить такое. Откройте сгенерированные паблишером скрипты и Вы всё там найдёте. Где искать? В проперти паблишера есть "Location Snapshot Files" Которые были установлены в начале.
16 апр 09, 20:19    [7075572]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
Mr Marmelad
Member [заблокирован]

Откуда: Boston MA
Сообщений: 2957
RG,

Давайте немного подробнее

NOT FOR REPLICATION

картинки
16 апр 09, 20:25    [7075586]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
Спасибо большое, посмотрю.
Скажите, а как будет тогда реплицироваться колонка id_type?
16 апр 09, 20:25    [7075587]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
Mr Marmelad
Member [заблокирован]

Откуда: Boston MA
Сообщений: 2957
RG
Спасибо большое, посмотрю.
Скажите, а как будет тогда реплицироваться колонка id_type?


Any Time

По этой колонке id_type и будут вестись изменения. Если значение ID_type = 231 (к примеру) существует в подписчике - данные NAME будут синхронизированы (UPDATE) . Если нет - значение внесётся (INSERT), если было и исчезло - удалится (DELETE). Ведь не имя важно - а значение
16 апр 09, 20:35    [7075614]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
Mr Marmelad, спасибо огромное за потраченное время:)
16 апр 09, 20:40    [7075627]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
Здравствуйте, Mr Marmelad!
Подскажите еще раз:
в директории Location Snapshot Files создаются 3 файла:

type.bcp
type.idx
type.sch

type.bcp - файл с данными,
type.idx - создает primary_key
type.sch - сами процедуры переноса

меняю файлы, как вы писали, чтобы названия колонок в процедурах соответствовали названиям на подписчике.
Пишет ошибку:
The process could not bulk copy into table '"dbo"."type"'.

Создаю репликацию в таблицу с одинаковым названием, работает, все хорошо. Меняю на таблицу с другим названием пишет ошибку.
Что я не так делаю?
17 апр 09, 15:19    [7079768]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
Алексей Гужин
Member

Откуда:
Сообщений: 130
RG, могу предположить, что пакет bcp создан по таблице издателя. Поэтому он не может залить данные в таблицу с другой структурой.
17 апр 09, 15:46    [7079965]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
Алексей Гужин
Member

Откуда:
Сообщений: 130
RG, если у Вас в таблицах содержаться одинаковые данные и нет необходимости их первоначальной синхронизации, попробуйте просто удалить этот файл.
Либо не инициализируйте подписчика совсем, а переопределите процедуры INS/UPD/DEL с помощью sp_register_custom_scripting.
17 апр 09, 15:49    [7079980]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
Mr Marmelad
Member [заблокирован]

Откуда: Boston MA
Сообщений: 2957
RG
Создаю репликацию в таблицу с одинаковым названием, работает, все хорошо. Меняю на таблицу с другим названием пишет ошибку.
Что я не так делаю?


По всей видимости Коллега есть ещё маленькая тонкость инициализации данных. BCP это загрузочный канал данных. Откройте файл и посмотрите что там с названиями табличек.
17 апр 09, 16:18    [7080202]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
а как этот файл открыть с помощью bcp?
автор

Откройте файл и посмотрите что там с названиями табличек.

я смогла только записать данные из файла в таблицу, насколько я понимаю, в файле содержаться только данные без определения названия табличек и колонок.
17 апр 09, 17:12    [7080609]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
Если использовать sp_register_custom_scripting, я правильно понимаю, можно не создавать подписчика и зарегистрировать процедуры репликации на сервере-издателе и этого будет достаточно для переноса данных?
17 апр 09, 17:16    [7080641]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
RG

Если использовать sp_register_custom_scripting, я правильно понимаю, можно не создавать подписчика и зарегистрировать процедуры репликации на сервере-издателе и этого будет достаточно для переноса данных?

Как тогда будет определяться подписчик?
17 апр 09, 17:18    [7080658]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
Mr Marmelad
Member [заблокирован]

Откуда: Boston MA
Сообщений: 2957
RG
а как этот файл открыть с помощью bcp?


Все файлы открываются в NOTEPAD или SSMS. Любой текстовый редактор.
17 апр 09, 17:25    [7080706]     Ответить | Цитировать Сообщить модератору
 Re: Репликация таблиц с разными названиями колонок  [new]
RG
Member

Откуда:
Сообщений: 173
в файле данные таблицы и только, без названия колонок.
17 апр 09, 17:42    [7080824]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить