Бекап всех баз mssql за один раз T-SQL скриптом

Сам скрипт см дальше. Не забудьте в самой первой строке поправить путь, куда будут складываться бекапы.

SET @path = 'D:\Backup\

DECLARE @name VARCHAR(50)
DECLARE @path VARCHAR(256)
DECLARE @fileName VARCHAR(256)

DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN (’master’,'model’,'msdb’,'tempdb’)

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + ‘.BAK’
BACKUP DATABASE @name TO DISK = @fileName

FETCH NEXT FROM db_cursor INTO @name
END

CLOSE db_cursor
DEALLOCATE db_cursor

При небольшом усилии можно сделать так, чтоб в имени файла присутствовала дата:
В самом начале пишем
DECLARE @fileDate VARCHAR(20)
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

и потом в цикле правим одну строчку:

SET @fileName = @path + @name + '_' + @fileDate + '.BAK'

»

Оставить комментарий - Feel free to ask me in English

Он появится после того, как будет одобрен. - All comments are pre-moderated.

Внимание! Пожалуйста, не пишите в комментарии [url=... или [url]... - это будет считаться спамом. Если хотите дать ссылку - пишите просто адрес, до 2х на один коммент.
Attention! Please don't use "[url=..." or "[url]..." in comment's body or it will be deleted as spam
If you want to send me a link just type url, up to 2 urls in one comment.

Спасибо за отзыв! Thank you for a comment!