crazyyyk
Дата: 17.01.2009 18:34:07
Нужна помощь.
Имеется база данных в MSSQL 7.0, не моя, мне нужно для нее настроить репликацию.
После всех действий по настройке, при выполнении репликации, выводит ошибку:
Cannot drop table 'table' because it is being referenced by a FOREIGN KEY constraint.
Репликацию делаю с помощью моментальных снимков, ошибку выдает distribution agent.
Познания мои не большие в sql так что прошу вашей помощи, весь интернет уже облазил, не знаю что делать.
crazyyyk
Дата: 18.01.2009 13:00:55
Как я понял он не дает удалить таблицу изза ограничений внешнего ключа, можно как то отключить это ограничения при репликации?
GreenSunrise
Дата: 18.01.2009 14:05:49
Вы явно оставили дефолтную опцию для применения снапшота на подписчике - пересоздание таблиц. Включите в публикацию все зависимые таблицы. Тогда удаление и создание будет происходить в правильном порядке. Или поставьте другую опцию, например, удаление всех данных вместо пересоздания таблиц.
crazyyyk
Дата: 18.01.2009 14:14:33
Пробовал включать и все зависимые таблицы и вообще всю базу, результат один. Если выберу удаление всех данных вместо пересоздания таблиц то вылазит ошибка:
Cannot truncate table 'Knot' because it is being referenced by a FOREIGN KEY constraint.
Незнаю уже как быть, ни гугл, ничего не помогает(((
GreenSunrise
Дата: 18.01.2009 20:16:15
А если выбрать не удаление всех данных, а удаление по фильтру, и фильтр не задавать? Будет применено "обычное" удаление, через delete, а не через truncate.
crazyyyk
Дата: 18.01.2009 21:10:24
GreenSunrise,
Опять выдает ошибку:
DELETE statement conflicted with COLUMN REFERENCE constraint 'FK_**_*'. The conflict occurred in database '***', table '**', column '*'.
Если убрать галку с Enable relationship for replication, то выдает:
то вроде проходит дальше, но все же на другом уж шаге выдает ошибку:
Last action: The process could not bulk copy into table '"Binding"'.
Last command: select * from "Structure" where 1 = 2
Full error message: Обнаружен непредвиденный символ EOF в файле данных BCP
crazyyyk
Дата: 18.01.2009 21:57:35
Попробовал выбрать меньше таблиц для репликации, но намного лучше так и не стало, по прежнему одни ошибки:
Last action: The process could not bulk copy into table '"Accessory"'.
Full error: Violation of PRIMARY KEY constraint 'PK_Accessory'. Cannot insert duplicate key in object 'Accessory'.
Как я понял он ругается что дублируются обьекты, но как они могут дублироваться если сперва в этой таблице все удаляется и она вообще пустая. Или я что то не так понимаю?((
GreenSunrise
Дата: 19.01.2009 14:00:10
Версия-то хоть какая вашей семерки?
select @@version
а то, может, долбимся в баги, исправленные еще прадедушками.
P.S. Почему именно 7, а не более поздняя? С тех пор уж 3 версии продукта вышло.
crazyyyk
Дата: 19.01.2009 15:08:31
GreenSunrise,
Версия:
Microsoft SQL Server 7.00 - 7.00.623 (Intel X86)
Nov 27 1998 22:20:07
Работаю с ней, потому что база была написанна на ней, не мной, 7-ой mssql дали вместе с базой, я новый и не искал, да и пойдет ли база на новом?
Предыдущую ошибку "решил" выставив в индексах к таблице галочку Ignore duplicate value, почему была эта ошибка так и не понял, может что то с индексами не так. Повторю базу не я делал(( мне нужно лишь организовать репликацию, но это оказалось не проще самой базы...
Так вот после того как поставил галочку выдает следующую ошибку:
last action: The process could not bulk copy into table '"table"'.
Error information: Category ODBC, Source ODBC SQL Server Driver, Nimber S1000
Full message error: Обнаружен непредвиденный символ EOF в файле данных BCP
Хоть огибка и вылазит но уже есть прогрес: до этого в таблицу на подписчике ничего не копировалось, лишь удалялось все, теперь копируется лишь то что изображенно на рисунке (при чем только первая строчка из таблицы издателя остальные 2 непонятно откуда берутся) , после чего как я понял выскакивает приведенная выше ошибка
crazyyyk
Дата: 21.01.2009 00:31:39
Никто не поможет?