不是所有的MSSQL数据库版本都支持数据库快照,只有Enterprise版本的才支持。
在其他版本上,以Business Intelligence Edition版本为例,创建快照时,会报如下错误
消息 1844,级别 16,状态 1,第 1 行
Business Intelligence Edition 不支持 Database Snapshot。
如图
在Enterprise版本的数据库下,运行如下语句来创建快照会报错,错误信息为
消息 5127,级别 16,状态 1,第 1 行
必须指定用于创建数据库快照的所有文件。缺少文件“testtt_Data”。
create database testttSnapShot on ( name=N‘testtt‘,filename=‘F:\\testDataBase\\testttSnapShot.ss‘ ) as snapshot of testtt
这说明,创建快照时 name=N‘testtt‘不是随便写的。必须指定和源数据库里面的数据文件相同的逻辑名称。原来的testtt数据库的主数据文件的逻辑名称应该是testtt_Data,而不是testtt。
如果不确定主数据文件的逻辑名称,可以运行select * from testtt.sys.database_files where type=0 确认一下,也可以用图形界面
所以,正确的写法应该是
create database testttSnapShot on (
name=N‘testtt_Data‘,filename=‘F:\\testDataBase\\testttSnapShot.ss‘ ) as snapshot of testtt
这里还需要注意,如果路径不存在,会报错