中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MSSQL通用還原腳本

發布時間:2020-07-12 19:32:43 來源:網絡 閱讀:464 作者:夏末微笑 欄目:數據庫

MSSQL還原腳本

SQL Server通用還原腳本,只需修改第二步中,需要還原的數據庫名稱和路徑

執行完腳本后會生成對應的還原命令,直接新建查詢后執行即可

MSSQL通用還原腳本


-- 2 - Initialize variables 

SET @dbName = 'Customer' 

SET @backupPath = 'D:\SQLBackups\' 


腳本如下:


--open-- xp_cmdshell

sp_configure 'show advanced options',1

reconfigure

go

sp_configure 'xp_cmdshell',1

reconfigure

go

 

 

USE Master; 

GO  

SET NOCOUNT ON 

 

-- 1 - Variable declaration 

DECLARE @dbName sysname 

DECLARE @backupPath NVARCHAR(500) 

DECLARE @cmd NVARCHAR(500) 

DECLARE @fileList TABLE (backupFile NVARCHAR(255)) 

DECLARE @lastFullBackup NVARCHAR(500) 

DECLARE @lastDiffBackup NVARCHAR(500) 

DECLARE @backupFile NVARCHAR(500) 

 

-- 2 - Initialize variables 

SET @dbName = 'Customer' 

SET @backupPath = 'D:\SQLBackups\' 

 

-- 3 - get list of files 

SET @cmd = 'DIR /b ' + @backupPath 

 

INSERT INTO @fileList(backupFile) 

EXEC master.sys.xp_cmdshell @cmd 

 

-- 4 - Find latest full backup 

SELECT @lastFullBackup = MAX(backupFile)  

FROM @fileList  

WHERE backupFile LIKE '%.BAK'  

   AND backupFile LIKE @dbName + '%' 

 

SET @cmd = 'RESTORE DATABASE ' + @dbName + ' FROM DISK = '''  

       + @backupPath + @lastFullBackup + ''' WITH NORECOVERY, REPLACE' 

PRINT @cmd 

 

-- 4 - Find latest diff backup 

SELECT @lastDiffBackup = MAX(backupFile)  

FROM @fileList  

WHERE backupFile LIKE '%.DIF'  

   AND backupFile LIKE @dbName + '%' 

   AND backupFile > @lastFullBackup 

 

-- check to make sure there is a diff backup 

IF @lastDiffBackup IS NOT NULL 

BEGIN 

   SET @cmd = 'RESTORE DATABASE ' + @dbName + ' FROM DISK = '''  

       + @backupPath + @lastDiffBackup + ''' WITH NORECOVERY' 

   PRINT @cmd 

   SET @lastFullBackup = @lastDiffBackup 

END 

 

-- 5 - check for log backups 

DECLARE backupFiles CURSOR FOR  

   SELECT backupFile  

   FROM @fileList 

   WHERE backupFile LIKE '%.TRN'  

   AND backupFile LIKE @dbName + '%' 

   AND backupFile > @lastFullBackup 

 

OPEN backupFiles  

 

-- Loop through all the files for the database  

FETCH NEXT FROM backupFiles INTO @backupFile  

 

WHILE @@FETCH_STATUS = 0  

BEGIN  

   SET @cmd = 'RESTORE LOG ' + @dbName + ' FROM DISK = '''  

       + @backupPath + @backupFile + ''' WITH NORECOVERY' 

   PRINT @cmd 

   FETCH NEXT FROM backupFiles INTO @backupFile  

END 

 

CLOSE backupFiles  

DEALLOCATE backupFiles  

 

-- 6 - put database in a useable state 

SET @cmd = 'RESTORE DATABASE ' + @dbName + ' WITH RECOVERY' 

PRINT @cmd 

 

 

 

 


 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潮州市| 屯留县| 大洼县| 西昌市| 梁平县| 那坡县| 蛟河市| 巴林右旗| 桐乡市| 通化县| 祁连县| 福贡县| 简阳市| 广州市| 双牌县| 应用必备| 晋中市| 封丘县| 霍州市| 北海市| 麻阳| 洛南县| 师宗县| 花莲县| 双峰县| 德格县| 英德市| 武宣县| 望城县| 兴安县| 儋州市| 镇赉县| 大埔县| 株洲县| 萍乡市| 依安县| 鄂托克前旗| 靖安县| 双辽市| 台南市| 项城市|