1

为了定期备份我的 SQL Azure 数据库,我一直在使用简单的 tSQL 语句

CREATE DATABASE FiveModes10_12_12 AS COPY OF FiveModes

但是对于这个项目(分析一些实验结果),我的数据库是本地 SQL Server 2012 数据库,我无法运行该语句(我收到错误消息Incorrect syntax near 'COPY')。查看SQL Server 2012 命令的文档,CREATE DATABASE没有AS COPY OF选项。什么是最简单的替代方案?

4

1 回答 1

2

对于长期存在的副本,请改为使用数据库备份:

backup database FiveModes to disk = 'path to .bak file' with init, copy_only;

您可以在需要时恢复它:

restore database FiveMode from disk = 'path to .bak file';

您甚至可以将备份还原为新数据库,但您需要在还原期间移动 MDF/LDF 文件的位置:

restore database FiveMode_12_12 from disk = 'path to .bak file'
   with move 'FiveMode' to '<path to place the new copy of MDF>',
   move 'FiveMode_log' to '<path to place the new copy of LDF>'

如果您只需要短期副本(例如,创建副本、做一些实验、恢复到副本),您可以使用数据库快照,但它需要企业许可证。请参阅数据库快照

create database FiveModes10_12_12  on
  (Name = 'FiveMode', FileName = '<path to MDF snapshot file>')
as snapshot of FiveModes;

但请注意,快照与 Azure 副本完全不同,长时间保留它们是非常不利的。对于长时间副本,请使用备份。

于 2012-12-10T09:07:13.887 回答