Как скопировать базу данных SQL Server 2008 с помощью кода C # - PullRequest
1 голос
/ 27 января 2010

Я хочу скопировать существующую схему базы данных SQL Server 2008, но не данные, в новую базу данных на том же сервере (т.е. MyDB => MyDB_Test), используя C #.

Я нашел пример кода на http://www.codeproject.com/KB/cs/CopyDBSchemaUsingSMO.aspx, который, кажется, делает именно то, что я хочу, но он продолжал выдавать следующую ошибку в строке ddatabase.Create ():

Could not load file or assembly 'Microsoft.SqlServer.BatchParser,
Version=9.0.242.0, Culture=neutral,

PublicKeyToken = 89845dcd8080cc91' или одна из его зависимостей. Система не может найти файл указано ":". Microsoft.SqlServer.BatchParser, Version = 9.0.242.0, Культура = нейтральная, PublicKeyToken = 89845dcd8080cc91 "

Я пытался найти недостающую DLL, но мне удалось найти только версию для SQL Server 2005. Я не уверен, стоит ли мне это использовать, искать альтернативную загрузку или использовать совершенно другой подход.

Любая помощь будет принята с благодарностью !!

Ответы [ 2 ]

1 голос
/ 27 января 2010

Я видел неполные установки компонентов SQL Server 2008 на компьютерах - в этом случае просто зайдите на сайт загрузки Microsoft и возьмите себе Microsoft SQL Server 2008 Management Objects (чуть ниже середины) в соответствующей версии (32-разрядная версия x86 или 64-разрядная версия x64 или 64-разрядная версия IA64 - в зависимости от ваших потребностей).

Установите это и попробуйте снова.

Что-то еще, что вы можете рассмотреть, это покупка и использование существующего инструмента вместо написания всего кода самостоятельно. Проверьте, например, Red-Gate SQL Compare , который позволяет вам это сделать - сравнить две базы данных (их структуру) и убедиться, что они находятся на одном уровне.

0 голосов
/ 27 января 2010

Несколько моментов, которые приходят на ум, которые, я думаю, следует учитывать:

Звучит так, что это не будет одноразовым, а чем-то, что вы хотите делать чаще, поэтому я бы предложил:

  1. Сохранение всех сценариев создания БД и их запуск. ИМХО, это хорошая вещь, чтобы в любом случае иметь контроль источника
  2. иметь чистую (пустую) резервную копию базы данных (по существу, копию шаблона) и восстанавливать ее как новую БД
...