Script backup toàn bộ databases trong SQL Server

Máy chủ của bạn có khoảng 100 database. Bạn muốn backup toàn bộ số database này ? Bạn hoàn toàn có thể sử dụng tool backup của SQL Server Management Studio nhưng sẽ rất mất nhiều thời gian cũng như chán nản. Thay vào đó bạn có thể sử dụng T-SQL là một phương pháp đơn giản và nhanh hơn rất nhiều


DECLARE @name VARCHAR(50) -- database name 
DECLARE @path VARCHAR(256) -- path for backup files 
DECLARE @fileName VARCHAR(256) -- filename for backup 
DECLARE @fileDate VARCHAR(20) -- used for file name
 
-- specify database backup directory
SET @path = 'C:\Backup\'
-- specify filename format
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 
DECLARE db_cursor CURSOR FOR 
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('master','model','msdb','tempdb')  -- exclude these databases
OPEN db_cursor  
FETCH NEXT FROM db_cursor INTO @name  
WHILE @@FETCH_STATUS = 0  
BEGIN  
       SET @fileName = @path + @name + '_' + @fileDate + '.BAK' 
       BACKUP DATABASE @name TO DISK = @fileName 
       FETCH NEXT FROM db_cursor INTO @name  
END  
CLOSE db_cursor  
DEALLOCATE db_cursor
Nếu bạn muốn thêm thời gian vào file backup bạn sẽ thay thế đoạn script sau:


SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
bằng đoạn


SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) + REPLACE(CONVERT(VARCHAR(20),GETDATE(),108),':','')

Chúc các bạn thành công