Экспорт - импорт базы данных MS SQL через клиентское приложение C# Win Forms

Adwenturer
Дата: 14.01.2010 13:01:48
В общем пишу курсовой по БД MS SQL. Заача в следующем - создать базу данных, и клиентское приложение написанное на C# Win Forms. Это я сделал, но дополнительное индивидуальное задание - это сделать экспорт - импорт БД. Если честно - не имею ни малейшего представления как это реализовать... Посоветуйте пожалуйста - с помощью чего это можно реализовать(желательно стандартными возможностями) и как...

Заранее благодарен =)
Andrew1411
Дата: 14.01.2010 13:18:15
Adwenturer,

Предполагаем, что импорт на другие сервера (только на MSSQL) предусматривать не надо, а так же переносу подлежать только данные, но не структура базы

1. Определиться с форматом файлов переноса. (если есть требования открытости данных, то брать вариации текстового формата, либо хml, если такого требования нет, то лучше базы SQLite в качестве носителя данных при импорте/экспорте найти трудно)

2. Определиться, на какой стороне необходимо осуществлять импорт/экспорт. если на стороне SQL сервера, то в помощь придет Bulk или/и хранимые процедуры (CLR процедуры). Если на стороне клиента, то читаем ридером и пишем в файл носителя данных при экспорте, либо инсертим данные при импорте. При Импорте не забываем о наличии внешних ключей, соответственно либо вставляем в правильном порядке, либо на момент импорта отключаем Reference constraint. Так же необходимо при импорте отключать триггеры.

P.S. как вароиант экспорта/импорта нельзя не рассматривать Backup/Restore
Andrew1411
Дата: 14.01.2010 13:23:37
так же можно посмотреть в сторону DTS или SSIS, в зависимости от версии сервера
Курочка Ряба
Дата: 14.01.2010 13:24:43
Не успел :)

Andrew1411
так же можно посмотреть в сторону DTS или SSIS, в зависимости от версии сервера

Не можно, а нужно
Andrew1411
Дата: 14.01.2010 13:32:47
Курочка Ряба
Не успел :)

Andrew1411
так же можно посмотреть в сторону DTS или SSIS, в зависимости от версии сервера

Не можно, а нужно
\

А теперь представим маленькую фирмочку с приходящим сисадмином, либо со слабым сисадмином.
Этой фирме предстоит поставить мелкую приладу, которая захочет установить сервак, и еще клиентские тулзы (не входящие в экспресс версию, соответственно лицензия стоит денег). Хуже будет, если у софтины будет требование, в наличии у клиента установленного сервака и сконфигурированного DTS. Так же не забываем, что глюки DTS не редкость, на компах, несколько раз переживших шаманские танцы приходящих админов, после крушения системы из-за вирусных атак он может либо не стать, либо не заработать. ИМХО, DTS это средство администратора, и им не должен пользоваться инсталятор/конфигуратор системы. (хотя некоторые на нем и отчеты крутят)
Adwenturer
Дата: 14.01.2010 13:58:53
Andrew1411,

Я тоже задумывался именно над этим вариантом - но просто не хотел гемороиться с записью, а птом чтением, и обратным заносом в БД...
Adwenturer
Дата: 14.01.2010 13:59:17
Курочка Ряба,

Спасибо, попробуем и это)
Andrew1411
Дата: 14.01.2010 14:19:17
Adwenturer
Andrew1411,

Я тоже задумывался именно над этим вариантом - но просто не хотел гемороиться с записью, а птом чтением, и обратным заносом в БД...


нет там никакого гемароя, получаете метаданные из системных представлений и вперед. В отличии от DTS, пишется один раз, используется во всех проектах. Если еще предусмотрите свою систему провайдеров импорта/экспорта, то подключить новый формат файла - носителя данных - пустяковая работа.

хотя, я понимаю, пишется не для себя а для сдачи зачета :)