要定期备份我的SQL Azure数据库,我一直在使用简单的tSQL语句
CREATE DATABASE FiveModes10_12_12 AS COPY OF FiveModes
但是对于这个项目(分析一些实验结果)我的数据库是一个本地SQL Server 2012,我无法运行该语句(我收到错误Incorrect syntax near 'COPY'
)。查看the documentation for the CREATE DATABASE
command for SQL Server 2012没有AS COPY OF
选项。什么是最简单的替代方案?
答案 0 :(得分:2)
对于长寿命副本,请改为使用e数据库备份:
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>'
如果您只需要短期副本(例如,创建副本,进行一些实验,还原到副本),您可以使用数据库快照,但它需要Enterprise许可证。见Database Snapshots:
create database FiveModes10_12_12 on
(Name = 'FiveMode', FileName = '<path to MDF snapshot file>')
as snapshot of FiveModes;
但请注意,快照根本不像Azure副本,这对于长时间保存它们是非常不利的。长时间复制使用备份。