Резервное копирование только новых или отредактированных записей - PullRequest
0 голосов
/ 02 декабря 2009

Я создал базу данных SQL Server Express, которая будет размещена на внешнем жестком диске. Мне нужно иметь возможность добавлять / обновлять данные в базе данных, которая находится в моей системе, а также в других системах, а затем только копировать или переносить данные, которые были добавлены или отредактированы на внешний жесткий диск. Каков наилучший способ сделать это?

Ответы [ 3 ]

0 голосов
/ 02 декабря 2009

Шерри, объясни, пожалуйста, применение и обоснование твоего дизайна. База данных не имеет никакого механизма для этого. Вам придется самостоятельно отслеживать изменения, а затем делать все, что вам нужно. SQL Server 2008 имеет встроенную функцию отслеживания изменений, но я не думаю, что это поможет вам с Express.

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

0 голосов
/ 02 декабря 2009

В заявке

Если вы делаете это из приложения, каждый раз, когда строка обновляется или вставляется - измените столбец bit / bool с именем dirty и установите в значение true. Когда вы выбираете строки для экспорта, выбирайте только те столбцы, для которых грязное значение равно true. После экспорта установите для всех грязных столбцов значение false.

Вне заявки

Мастер DTS

Если вы делаете это вне приложения, запустите его из командной строки:

Run  "C:\Program Files\Microsoft SQL Server\90\DTS\Binn\DTSWizard.exe" 

В этой статье объясняется, как получить мастер DTS (по умолчанию он не включен).

Включено в SQL Server Express Edition Toolkit - и только тот. Если вы установили другой версия SSE, работает нормально установить этот пакет потом без удаления других. Получить это здесь: http://go.microsoft.com/fwlink/?LinkId=65111

Мастер DTS включен в опция «Бизнес-аналитика» Студия развития », поэтому обязательно выберите это для установки

Если вы установили другую версию SSE, установщик может сообщить что нечего устанавливать. Переопределите это, установив флажок который отображает номер версии (в мастер установки)

После завершения установки DTS Мастер доступен на c: \\ Microsoft SQL Сервер \ 90 \ DTS \ Binn \ dtswizard.exe вы может хотеть сделать ярлык, или даже включить его в меню инструментов SQL Студия.

bcp Utility

Утилита bcp массово копирует данные между экземпляром Microsoft SQL Server и файлом data> в указанном пользователем формате. Утилита bcp может использоваться для импорта большого количества> новых строк в таблицы SQL Server или для экспорта данных из таблиц в файлы данных. За исключением> при использовании с опцией queryout, утилита не требует знаний Transact-SQL. Чтобы импортировать данные в таблицу, вы должны либо использовать файл формата, созданный для этой таблицы, либо> понять структуру таблицы и типы данных, которые действительны для ее таблицы. колонны.

0 голосов
/ 02 декабря 2009

Возможно, вы бы использовали для этого репликацию, но поскольку вы используете SQL Server Express, это не вариант.

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

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

Альтернативой является добавление битового столбца, который обновляется, но это выглядит менее гибким.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...