gessing
|
|
1 | |
скрипт синхронизации13.06.2013, 09:34. Показов 864. Ответов 0
Метки нет (Все метки)
Прошу помощи в написании скрипта ! этим делом никогда не занимался - теперь вот пришлось
суть проблемы: есть два сервера (ms sql 2008), между ними настроена репликация. Проблема заключается только в синхронизации файлов. Создана дополнительная таблица на каждом сервере, куда с помощью триггера вносятся ID измененных / удаленных / новых файлов . Теперь мне необходимо изменить скрипт выборки и синхронизации файлов так, чтобы он руководствовался данными из этих таблиц... скрипт, который сейчас работает (криво) не устраивает. DECLARE @IDSELAM table (ID uniqueidentifier,CreationDate datetime) DECLARE @IDSToInsertElam table (ID uniqueidentifier) DECLARE @IDSToDeleteElam table (ID uniqueidentifier) DECLARE @IDSToInsertRzn table (ID uniqueidentifier) DECLARE @IDSToDeleteRzn table (ID uniqueidentifier) DECLARE @ID uniqueidentifier DECLARE @SyncDate datetime --PRINT 'Получаем коды и даты файлов с srvelam' INSERT INTO @IDSELAM SELECT ID,CreationDate FROM srvelam.ElamedFileDB.dbo.DataFiles --PRINT 'Находим дату последнего синхронизованный файл' SET @SyncDate= (SELECT Max(t1.CreationDate) FROM @IDSELAM as t1 JOIN ElamedFileDB.dbo.DataFiles as t2 ON t1.ID=t2.ID AND t1.CreationDate=t2.CreationDate) --PRINT 'Находим файлы которые надо добавить на SrvElam' INSERT INTO @IDSToInsertElam SELECT r.ID FROM ElamedFileDB.dbo.DataFiles r LEFT JOIN @IDSELAM e ON r.ID=e.ID WHERE e.ID IS NULL AND r.CreationDate>@SyncDate --PRINT 'Находим файлы которые надо удалить с SrvElam' INSERT INTO @IDSToDeleteElam SELECT e.ID FROM @IDSELAM e LEFT JOIN ElamedFileDB.dbo.DataFiles r ON r.ID=e.ID WHERE r.ID IS NULL AND e.CreationDate<@SyncDate --PRINT 'Находим файлы которые надо добавить на SrvRzn' INSERT INTO @IDSToInsertRzn SELECT e.ID FROM @IDSELAM e LEFT JOIN ElamedFileDB.dbo.DataFiles r ON r.ID=e.ID WHERE r.ID IS NULL AND e.CreationDate>@SyncDate --PRINT 'Находим файлы которые надо удалить с SrvRzn' INSERT INTO @IDSToDeleteRzn SELECT r.ID FROM ElamedFileDB.dbo.DataFiles r LEFT JOIN @IDSELAM e ON r.ID=e.ID WHERE e.ID IS NULL AND r.CreationDate<@SyncDate --PRINT 'Добавляем файлы на SrvElam' INSERT INTO srvelam.ElamedFileDB.dbo.DataFiles SELECT r.* FROM ElamedFileDB.dbo.DataFiles r JOIN @IDSToInsertElam ie ON r.ID=ie.ID --PRINT 'Удаляем файлы с SrvElam' DECLARE IDSDelElam CURSOR LOCAL FOR SELECT * from @IDSToDeleteElam OPEN IDSDelElam FETCH NEXT FROM IDSDelElam INTO @ID WHILE @@FETCH_STATUS=0 BEGIN заранее прошу прощенья, но в этом деле я новичок |
13.06.2013, 09:34 | |
Ответы с готовыми решениями:
0
Проблема синхронизации скриптов двух разных баз Скрипт синхронизации папок Скрипт синхронизации файлов (зеркалирования) Создать скрипт для синхронизации файлов |
13.06.2013, 09:34 | |
13.06.2013, 09:34 | |
Помогаю со студенческими работами здесь
1
Скрипт умной синхронизации файлов (зеркалирования) Подобие синхронизации Вопрос по синхронизации Модуль синхронизации Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |