SQL Server эквивалент SQL Azure DBCOPY («КАК КОПИЯ») - PullRequest
1 голос
/ 12 ноября 2010

SQL Azure имеет очень удобную команду для копирования баз данных:

CREATE DATABASE NewDatabase AS COPY OF ExistingDatabase

Есть ли что-нибудь подобное в SQL Server 2008 R2? Я просто хочу, чтобы команда делала простую локальную копию без DTS, агента SQL Server и т. Д. В идеале я хотел бы эффективно создавать несколько копий.

1 Ответ

2 голосов
/ 12 ноября 2010

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

backup database ExistingDatabase 
  to disk='c:\...\ExistingDatabase.bak' 
  with copyonly, format;

restore database NewDatabase
  from disk 'c:\...\ExistingDatabase.bak' 
  with move ExistingDatabase to 'NewDatabase.MDF'
  , move ExistingDatabase_log to 'NewDatabase_log.LDF';

Базы данных Azure не являются физическими, являются только логическими и, следовательно, что-то вродеAS COPY OF можно легко сделать.Но базы данных, отличные от Azure, являются реальными, физическими, и вам необходимо позаботиться обо всех деталях, связанных с операцией «копирования», таких как расположение файлов и т. Д.

Также в SQL Azure необходимо учитывать * 1007.* чтобы преодолеть отсутствие базы данных model.С SQL Server вы можете создать структуру шаблона в модели, и все последующие CREATE DATABASE будут наследовать эту структуру шаблона.

...