powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Репликация транзакций на базе без первичных ключей
44 сообщений из 44, показаны все 2 страниц
Репликация транзакций на базе без первичных ключей
    #32043283
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто- нибудь знает, способ как обойти отсутствие первичных ключей при репликации транзакций
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043306
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BOL:

Transactional replication requires a primary key to identify rows. For an instance of Microsoft® SQL Server™, primary keys are implemented in PRIMARY KEY and UNIQUE key constraints.

If TRUE, the table contains a PRIMARY KEY constraint and can be published as an article in a transactional publication.

If FALSE, the table does not contain support for transactional replication and cannot be published as a transactional article.
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043315
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понятно, а Marge replication, Портит базу своими ключами, не скажите пожалуйста как выбраться из этой ситуации, мне все равно какая репликация, только не Моментальных снимков ( большой трафик)
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043320
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а первичный ключ на базе существующих полей не получится сделать?
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043620
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2500 таблиц, ни одного ключа, добавление колонки трешит базу
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043691
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не надо добавлять колонки....
первичный ключ это не колонка.....
если существует уникальное сочетание УЖЕ существующих полей то можно на них сделать первичный ключ...
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043692
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не представляю как сделать первичный ключ у 2500 таблиц. Результат не известен. Есть ли смысл?
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043702
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если очень нужно - то можно и сделать...
да и автоматизировать этот процесс можно...
просто есть ограничения на максимальное количество колонок в одном индексе это раз....
вся система после этого будет притормаживать (не обязательно) это 2....
все зависит от того что вам именно нужно...
а вообще что это за фигня такая? туева куча таблиц и без уникальных ключей?....
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043703
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ключей может не быть, если база объектно-ориентированная
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043704
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ключ там тоже есть.... просто не всегда его видно....
объектно ориентированных баз кроме cache не знаю....
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043773
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
База покупная, задумана так , как говорят, специально для совместимости, все на процедурах, делаю столбец первичным ключом, SQL -база работает нормально, Delphi интерфейс - рушится.
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043775
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Фирма, которая делала базу, просит бабки за помощь в организации репликаций или резервного сервера. Хочу их обойти, неужели ситуация безвыходна.
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043789
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что значит рушится ?
какая ошибка ?
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043794
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1 General sql server Error ####( так и выглядит) . 2 Не соответствие Описания таблиц и содержания. И никто не может зайти ...
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043795
Sergey Vinogradov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно как-то.

Добавить колонку нельзя... А почему?
Там что, проверка структуры встроена?

Объявить существующую колонку первичным ключом тоже нельзя... Уж интерфейсу-то серверные ограничения должны быть совсем безразличны.

Может там и правда клиент при запуске проверяет структуру БД и если она не совпадает (с чем?), то отказывается работать?
Тогда, действительно, тупик получается.
Если только попробовать обойти проверку структуры (если она там есть).
Либо делать собственную репликацию, что совсем изврат.
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043797
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мда, разработчики постарались
все же попробуй добавить поле типа Identity
немного не понятно, что значит трешить
база первое время потормозит, потом начнет работать нормально, просто надо периодически обновлять статистику
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043799
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, кстати попробуй под отладчиком пройти по шагам и определить где возникает ошибка
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043800
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Sergey Vinogradov
Там что, проверка структуры встроена?
select * from ....
Вот и вся проверка, если на клиенте какой нибудь грид, то клиент ессно рухнет. :-)

2 antony

Разработчиков у которых нет ключей в таблицах надо гнать в шею а не деньги им платить.
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043804
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
интересовался кластерами - тоже не подходит. Та какой-то сложный механизм с юзерами( три таблицы). Происходит проверка и сопоставление, пока разбираюсь в этом.... А DTS не может сделать что-то вроде копирования транзакций и только....( всю базу копировать - че та не прет)
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043805
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
предыдущее сообщений со знаком вопроса :)
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043806
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и все же отладчик - реальная возможность определить, что и где
вы покупали бвзу с исходниками ?
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043809
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Genady , не согласен , база грамотная ( можно в мгновение поменять Sybase на Sql-server) . Тут на самом деле очень сложные прцессы происходят, я бы сам не смог... Летает мгновенно. Бекап - сутки.
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043810
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Room спасибо я занимаюсь этим, че нового будет - сообщу
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043820
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Репликация транзакций на базе без первичных ключей
Genady , не согласен , база грамотная

Без коментариев. :)
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043837
Sergey Vinogradov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To: Genady
select * from ....
А что такое и правда бывает? Не верю. :)

To: antony
Sybase на MSSQL поменять много ума не надо - ноги-то из одного, извиняюсь, места растут.
А что летает ... так судя по количеству табличек, там все денормализовано по самое не хочу.

Проверка структуры может находится в какой-нибудь процедуре, которую можно поправить.
Либо если есть собственный системный каталог, с которым и производится сравнение - тоже можно поправить.
А иначе, как тут уже подсказали, остается хакать приложение.
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043842
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Sergey Vinogradov
А что такое и правда бывает? Не верю. :)

А Вы не инопланетянин, часом? :)
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043843
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Genady
Запросто ветикальная модель и ни о каих select * from
на клиенте и думать не очем:))
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043849
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2vinogradov
Тут 3000 процедур и в каждой все прописано дважды: для Sybase и Sql
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043852
Sergey Vinogradov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот блин жуть какая.
У них же синтаксис как две капли воды...
Чего там дважды-то писать?
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32043855
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Sergey Vinogradov
Вот блин жуть какая.
(Назидательно) Главное, что бы база была грамотная! :)
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044015
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Genady
Хватит издеваться, лучше помоги....
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044020
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хватит издеваться, лучше помоги....
Ну, я скорее сочувствую, чем издеваюсь. Помочь к сожалению не могу, ибо механизмы репликации в MS SQL сервере расчитаны все таки на реляционные БД, Ваши проектировщики судя по всему понятия не имеют что это такое, иначе БД была бы с ключами.
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044024
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вот тут подумал , а не написять ли все заново....
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044025
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно, хватит работать, Ай-во пиво пить...
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044030
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот тут подумал , а не написять ли все заново....

Уже второй раз сталкиваюсь с такой ситуацией, что надо заново все разрабатывать, потому как наращивание функциональности на существующей системе равнозначно переписыванию оной. Советую только все же спроектировать систему так, что бы потом ее не надо было бы переписывать кому то еще.
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044161
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4 Genady Все бы хорошо, да тут обмен текстовыми файлами, с кучей разных форматов обмена. Все это втягивается от разных клиентов (1000). Бил его знает, как это все заново делать.
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044168
Фотография sparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Как-нибудь систематически переименовать все таблицы.
2. Создать на каждую таблицу VIEW c исходым иененем таблицы и перечислением всех столбцов. В результате все работает через VIEW.
3. В всех таблицах добавить колонку первичого ключа - IDENTITY, a еже лучше - uniqueidentifier для любых типов репликации.
4. Все!

Все шаги перекрасно автоматизитуется.
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044180
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополню sparrow. Вьюхи надо создавать с опцией WITH VIEW_METADATA. А это возможно только на sql2000. На семёрке (где нет вышеуказанной опции) могут быть глюки (а могут и не быть), так как при получении описания метаданных вьюхи будут опрашиваться все равно описания базовых таблиц.
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044193
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4 sparrow
1. Как-нибудь систематически переименовать все таблицы.
Во мысля...
2. Создать на каждую таблицу VIEW c исходым иененем таблицы и перечислением всех столбцов. В результате все работает через VIEW.

3. В всех таблицах добавить колонку первичого ключа - IDENTITY, a еже лучше - uniqueidentifier для любых типов репликации.
4. Все!
Круто, тока, не совсем доперло, извините, поподробнее нельзя? Как это можно автоматизировать?
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044204
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут еще такая фигня, мне структуру базы трогать нельзя, иначе откажутся нас поддерживать....
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044249
Фотография AVL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если скрипт формировать триггерами?
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044251
Фотография AVL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или триггер=изменение базы данных?
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044265
Фотография sparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автоматизируется через динамический SQL, курссоры и sp_MSforeachtable, здесь практически всё описывалось, поищи топики.

1. Переименование: EXEC sp_MSforeachtable @command1="EXEC sp_rename '?', 'MyPrefix_'+'?'"

2. Создание VIEW с помощю динамического SQL и курсора по
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES - имена таблиц
SELECT TABLE_NAME,COLUMN_NAME from information_schema.columns - имена колонок
создаются VIEW ()

3. Создание ключа - как в пункте 1. И ALTER TABLE

Это для 2k, для 7 используй информацию из SYSOBJECTS и SYSCOLUMNS, вместо sp_MSforeachtable - курсор


Тут еще такая фигня, мне структуру базы трогать нельзя, иначе откажутся нас поддерживать.... - тогда иди к разработчику, или переделывай все сам по новой...
...
Рейтинг: 0 / 0
Репликация транзакций на базе без первичных ключей
    #32044313
antony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4 sparrow
спасибо большое, твоя идея самая лучшая, из всех мной увиденных, жаль, что не могу ее реализовать....:)
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Репликация транзакций на базе без первичных ключей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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