Snapshot--使用脚本创建快照
2024-08-30 15:02:50
USE master;
SET NOCOUNT ON;
GO
DECLARE @dbname varchar(255); --数据库名
DECLARE @snapname varchar(255);--快照名
DECLARE @snap_dir varchar(255);--保存路径 SET @dbname='DB1';
SET @snapname='DB1_SNAP';
SET @snap_dir='D:\DB\'
BEGIN TRY
-- 删除快照如果快照存在
IF EXISTS (SELECT name FROM master.sys.databases
WHERE name = @snapname)
BEGIN
EXEC ('DROP DATABASE '+@snapname);
END --将数据库文件放入临时表中
SELECT name AS DBFileName INTO #tempFiles
FROM master.sys.master_files
WHERE type<>1 AND database_id=DB_ID(@dbname);
DECLARE @tempSQL NVARCHAR(2000);
DECLARE @tempFileName NVARCHAR(200)
SET @tempSQL='CREATE DATABASE '+@snapname+' ON ';
WHILE((SELECT COUNT(1) FROM #tempFiles)>0)
BEGIN
SELECT TOP(1) @tempFileName=DBFileName FROM #tempFiles;
SET @tempSQL=@tempSQL+'(NAME='+''''+@tempFileName+''',FILENAME='''+@snap_dir+@tempFileName+'.snap'')';
DELETE FROM #tempFiles WHERE DBFileName=@tempFileName;
END
DROP TABLE #tempFiles;
SET @tempSQL=@tempSQL+'AS SNAPSHOT OF '+@dbname+';' PRINT '创建脚本:'
PRINT @tempSQL;
EXEC(@tempSQL)
PRINT '创建成功'; END TRY
BEGIN CATCH
PRINT '执行出错,错误信息:'
PRINT ERROR_MESSAGE()
END CATCH
最新文章
- ArcGIS 10.0紧凑型切片读写方法
- Python3.5在Windows 7下连接ORACLE数据库
- 激活jws.mono的图像处理
- .NET中DateTime.Now.ToString的格式化字符串
- mysql之替换字符串
- make的控制函数(error,warning)
- Mysql 常用函数
- 【JAVA集合框架之Map】
- jquery总结05-常用事件04-委托事件
- 20145207 《Java程序设计》第5周学习总结
- iOS进阶收藏
- SQL Server 系统表简介
- Codeforces Round #208 (Div. 2)
- [lua]原来这才是表驱动的正确表达方式
- 炫酷吊炸天的nodeppt
- 2014.8.3情人节欢乐赛【Benny的农场】
- JavaSE学习总结第03天_Java基础语法2
- Struts2中ActionContext及ServletActionContext介绍(转载)
- PHP常用的三种设计模式
- jdk源码->;多线程->;Thread