2010-02-10 3 views
1

У нас есть cutomers, заинтересованные в отправке своих данных Sql 2008 другим пользователям с SQL 2000. Теперь очевидно, что это в настоящее время не работает, поэтому я пытаюсь создать «общий», который позволяет нам создавать резервные копии и восстанавливать наши данные на сервере 2000 и выше (поскольку SQL2000 является наименее общим знаменателем всех или клиентов). Сейчас мы генерируем наши резервные копии таким образом (C#):Резервное копирование SQL 2008 для восстановления на SQL 2000 .NET

Server server = new Server(GetServerConnection(serverName, userName, password)); 
Backup backup = new Backup(); 
backup.Action = BackupActionType.Database; 
backup.Database = GetDatabasePrefix() + databaseName; 
backup.Devices.AddDevice(fileName, DeviceType.File); 
backup.Initialize = true; 

backup.SqlBackup(server); 

Мой первый вопрос, есть ли способ «заставить» резервной копии будет работать как SQL Server 2000, даже если база данных SQL 2005 или 2008?

Кроме того, мы думали об этом избежать, используя процедуру bcp в базе данных, чтобы упаковать и распаковать таблицы и закрепить их вместе. В zip-процессе я бы поставил флаг заголовка, чтобы объявить его «общей» резервной копией. Это кажется разумным, или есть более простой способ сделать это? Поскольку приложение одинаково независимо от сервера, все столбцы и таблицы должны быть одинаковыми. Спасибо за помощь!

ответ

5

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

2

Невозможно восстановить резервную копию с более новой версии SQL Server до более старой версии.

Вы можете создавать SSMS 2000 сценарии SQL из SSMS 2008:

  • Откройте Инструменты -> Параметры в SSMS 2008
  • Перейти к SQL Object Server Explorer -> Сценарии
  • Набор «Сценарий для версии сервера "2000
  • правой кнопкой мыши базу данных, выберите задачи -> Создать скрипты
  • Script все объекты в базе данных
  • Выполнение скрипта на сервере 2000

Затем связать серверы вместе, и скопировать данные, такие как:

insert ChefDb.dbo.MyTable from ChefServer.ChefDb.dbo.MyTable 

Кроме того, рассмотреть вопрос о приобретении RedGate SQL Data Compare.

+0

Я ценю подробный ответ, но моя основная цель - использовать эту функциональность программно. Я не могу просить наших клиентов сделать это, я должен предоставить средства в нашем приложении. – Kevin