Как сделать частичное копирование удаленной базы данных SQL Server Express в локальную базу данных SQL Server Express? - PullRequest
1 голос
/ 22 июня 2010

Я нахожусь в ситуации, когда мне нужно создать частичную копию базы данных с удаленного SQL Server (2005/2008 Express Edition) и сохранить ее в локальной базе данных SQL Server (2005/2008 Express Edition).Локальная копия будет иметь то же определение схемы, но содержать только части данных из удаленной базы данных.

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

TodaysDate_SerialNumber_MachineNumber_DatabaseName    
e.g.  20100622_1_3_DatabaseName

(Не увлекайтесь схемой именования, это не былоеще не решил.)

Я работаю в C # на .net 3.5 с использованием VS2010.

Пока я думаю о том, чтобы выполнить сценарий создания базы данных на локальном сервере SQL из кода C #, а затем скопировать данные из удаленной базы данных в локальную базу данных, отфильтрованные по тому, что мне действительно нужно.Операции должны начинаться с кода C #, но не обязательно должны быть всем кодом C #.Но я еще не решил.Как вы думаете, что будет лучшим вариантом для выполнения того, что я хочу сделать?

(Кстати, если я неясен, просто дайте мне знать, и я постараюсь обновить вопрос с дополнительной информацией.)

Ответы [ 3 ]

1 голос
/ 22 июня 2010

Ответ на этот вопрос действительно зависит от того, что вам наиболее удобно делать.

Я бы, вероятно, настроил связанный сервер на локальном SQL Express и написал бы один сценарий SQL, чтобы сделать все это. Он может сообщать о прогрессе обратно в приложение C #, используя RAISERROR ... WITH NOWAIT, и эти сообщения можно обрабатывать асинхронно, настроив SqlInfoMessageEventHandler

1 голос
/ 22 июня 2010

Возможно, вы сможете создать резервную копию базы данных, загрузить ее в локальную машину, создать там новую пустую базу данных и восстановить резервную копию в пустой базе данных с опцией «переопределить». После этого вы можете удалить те записи, которые не хотите «копировать».

Вы можете использовать Microsoft SQL Management Studio для создания сценариев резервного копирования и восстановления.

1 голос
/ 22 июня 2010

SqlBulkCopy , вероятно, является лучшим выбором, если вы делаете это полностью в коде.

У вас будет sql-соединение с каждой из ваших баз данных, а затем оператор select для запуска в исходной базе данных, который будет вставлять строки в целевую базу данных / таблицу.

...