Как вы копируете базу данных MS SQL 2000 программно, используя C#?
Мне нужно скопировать несколько таблиц из одной БД в другую в SQL Server 2000, используя C# (VS 2005). Вызов должен быть параметризован - мне нужно передать имя базы данных, в которую я собираюсь копировать эти таблицы.
Я мог бы использовать DTS с параметрами, но я не могу найти пример кода, который делает это из C#.
В качестве альтернативы, я мог бы просто использовать
drop table TableName
select * into TableName from SourceDB..TableName
а затем восстановить индексы и т. д. - но это действительно глупо.
Есть другие идеи?
Спасибо!
3 ответа
Для SQL Server 7.0 и 2000 у нас есть SQLDMO для этого. Для SQL Server 2005 есть SMO. Это позволяет вам практически все, что связано с администрированием базы данных, объектами сценариев, перечислением баз данных и многим другим. Это лучше, ИМО, чем пытаться использовать "свой собственный" подход.
SQL 2000: разработка приложений SQL-DMO
SQL 2005: вот главная страница SMO: объекты управления Microsoft SQL Server (SMO)
Вот функциональность Передача: Передача данных
Как перенести схему и данные из одной базы данных в другую в Visual Basic .NET
Вы можете поставить скрипты (копия БД), найденные здесь
http://www.codeproject.com/KB/database/CreateDatabaseScript.aspx
В приложение. Просто замените пункт назначения. Чтобы на самом деле переместить базу данных entite, следуйте
http://support.microsoft.com/kb/314546
Но помните, базу данных сначала нужно отключить.
Спасибо
Если таблица назначения отбрасывается каждый раз, то почему бы не сделать SELECT INTO? Не похоже на клудж вообще.
Если он работает просто отлично и помечает все поля требований, зачем создавать дневной трудоемкий код, чтобы сделать то же самое?
Пусть SQL сделает всю тяжелую работу за вас.