2012-03-16 2 views
0

У нас есть база данных Access UI to Sql Server. Пользователь подключается ко многим базам данных (содержащих одни и те же таблицы с разными данными), может выбирать между ними. Мы используем это для управления версиями. Мы хотим, чтобы он мог копировать и удалять базы данных прямо из интерфейса доступа. Он должен иметь возможность копировать, по крайней мере, на тот же сервер, и в идеале также на другой сервер.Как скопировать базу данных SQL Server из Access

+0

Вы хотите скопировать данные из Access децибел к БД SQL, или это чистый SQL децибел доступ из Access UI. Когда вы говорите копии БД, вы имеете в виду копии данных или полную БД? – Jaques

+0

Все данные находятся в SQL DB, доступ к которым осуществляется через связанные таблицы. Я хочу создать новую базу данных как копию другой. В настоящее время мы делаем это с резервным копированием/восстановлением SSMS. – Oliv

+0

Возможно, вам понравится http://blog.sqlauthority.com/2011/05/27/sql-server-copy-database-from-instance-to-another-instance-copy-paste-in-sql-server/ и http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema -stored-procedure-functions-triggers-tables-views-constraints-and-all-other-database-objects/Вы должны иметь возможность запускать скрипты из Access. – Fionnuala

ответ

0

Это мое окончательное решение:

Dim conn As New ADODB.Connection 

conn.ConnectionString = "Provider=SQLOLEDB;Data Source=" dbServer & ";" _ 
    & "User ID=" & user & ";Password=" & password 
conn.Open 

' backup 
conn.Execute "BACKUP DATABASE [" & sourceDb & "] TO [backup device] WITH NOFORMAT, NOINIT, NAME = N'backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10" 

' restore 
conn.Execute "RESTORE DATABASE [" & targetDb & "] FROM [abcosting temporary backup] WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10, " & mdf_move & ", " & ldf_move 
0

Резервное копирование и восстановление, вероятно, будет вашим лучшим выбором. Есть и другой способ. Но будут некоторые ограничения.

Вы можете отделить БД, которую хотите скопировать, сделать копию файлов, прикрепленных к старой, и прикрепить новую как новую БД. Ваша проблема будет заключаться в том, что вы используете Access для подключения к БД, вы не сможете отсоединить его, потому что есть подключение к нему, и все соединения должны быть удалены, прежде чем вы сможете отсоединить его.

Удаление этой БД (удалить ее) будет иметь ту же проблему. Он не будет падать, если вы не подключаетесь к БД.

+0

Видимо, нет: http://msdn.microsoft.com/en-us/library/ms188664.aspx – Fionnuala

Смежные вопросы