Как вы копируете базу данных MS SQL 2000 программно, используя C #? - PullRequest
3 голосов
/ 06 октября 2008

Мне нужно скопировать несколько таблиц из одной БД в другую в SQL Server 2000, используя C # (VS 2005). Вызов должен быть параметризован - мне нужно передать имя базы данных, в которую я собираюсь копировать эти таблицы.

Я мог бы использовать DTS с параметрами, но я не могу найти пример кода, который делает это из C #.

В качестве альтернативы, я мог бы просто использовать

drop table TableName
select * into TableName from SourceDB..TableName

, а затем восстановите индексы и т. Д., Но это действительно клуджи.

Есть еще идеи?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 06 октября 2008

Для SQL Server 7.0 и 2000 у нас есть SQLDMO для этого. Для SQL Server 2005 есть SMO. Это позволяет вам практически все, что связано с администрированием базы данных, объектами сценариев, перечислением баз данных и многим другим. Это лучше, ИМО, чем пытаться использовать «свой собственный» подход.

SQL 2000: Разработка приложений SQL-DMO

Перенос объекта

SQL 2005: Вот главная страница SMO: Объекты управления Microsoft SQL Server (SMO)

Вот функциональность передачи: Передача данных

Как передать схему и данные из одной базы данных в другую в Visual Basic .NET

1 голос
/ 06 октября 2008

Вы можете поместить найденные здесь скрипты (копия БД)

http://www.codeproject.com/KB/database/CreateDatabaseScript.aspx

В приложение. Просто замените пункт назначения. Чтобы на самом деле переместить базу данных entite, следуйте

http://support.microsoft.com/kb/314546

Но помните, сначала нужно отключить базу данных.

Спасибо

1 голос
/ 06 октября 2008

Если таблица назначения отбрасывается каждый раз, то почему бы не сделать SELECT INTO? Не похоже на клудж вообще.

Если он работает просто отлично и помечает все поля требований, зачем создавать код, рассчитанный на несколько дней, чтобы сделать то же самое?

Пусть SQL сделает всю тяжелую работу за вас.

...