不是所有的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
這里還需要注意,如果路徑不存在,會報錯