按计划重新创建数据库快照

时间:2017-01-05 15:41:41

标签: sql-server tsql

我是db world的新手。我必须创建一个将删除数据库快照并在每天重新创建它的作业。但我想知道如何设置快照后我可以验证。

1 个答案:

答案 0 :(得分:0)

您可以使用SQLAgent来完成此任务:Creation & Deletion of Database Snapshot by SQL Agent Job

Id  Val1    Val2    Val3
0   1   2   3
2   3   5   5

对于验证部分,您可以使用以下查询..

 --Step 1 :- 
DECLARE @CREATE_SS VARCHAR(MAX) 
DECLARE @DT VARCHAR(100) 
SET @DT = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR,GETDATE(),120),’-‘,’_’),’ ‘,’_’),':’,’_’) 
SET @CREATE_SS = 
‘CREATE DATABASE TEST_’+@DT+’ ON 
( NAME = TEST, FILENAME = 
”C:\TEST_’+@DT+’.SS” ) 
AS SNAPSHOT OF TEST’ 
EXEC (@CREATE_SS) 

--Step 2 :- 
IF(SELECT COUNT(*) FROM SYS.DATABASES WHERE SOURCE_DATABASE_ID = DB_ID(‘TEST’))>1 
BEGIN 
DECLARE @DROP_SS VARCHAR(MAX) 
DECLARE @SS_NAME VARCHAR(100) 
SELECT TOP 1 @SS_NAME = NAME FROM SYS.DATABASES WHERE SOURCE_DATABASE_ID = DB_ID(‘TEST’) 
ORDER BY CREATE_DATE ASC 
SET @DROP_SS = ‘DROP DATABASE ‘+ @SS_NAME 
EXEC (@DROP_SS) 
END