zoukankan      html  css  js  c++  java
  • Snapshot--使用脚本创建快照

    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
  • 相关阅读:
    vim使用笔记
    想象的天空
    修电脑记
    反编译 Component重要类,全文解释 - 组件篇
    被动扫描和主动处理的比较
    第一次运行起来XAML
    学习 Aero 随笔
    Google AdSense 申请已得到批准
    延迟加载的一般实现
    看见几篇文章,收藏一下。
  • 原文地址:https://www.cnblogs.com/TeyGao/p/3522628.html
Copyright © 2011-2022 走看看