我正在编写一个脚本,该脚本将创建一个新文件夹并将所有数据库备份到该文件夹中。该脚本将生成新文件夹,但不会将备份保存到该文件夹中。我不确定我错过了什么。先感谢您。
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
DECLARE @DirTree TABLE (subdirectory nvarchar(255), depth INT)
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
SET @path = '\\noc2-storage\IT_Backup\Weekly_SQL\CDADB1\' + @fileDate;
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
IF NOT EXISTS (SELECT 1 FROM @DirTree WHERE subdirectory = @path)
EXEC master.dbo.xp_create_subdir @path
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
Run Code Online (Sandbox Code Playgroud)
先感谢您
你为什么要重新发明轮子......因为重新发明它是有成本的!
您还使用了不推荐使用的东西,例如sysdatabases
.. 而不是使用sys.databases
.
你应该使用 -
两者都是免费的,并且经过了社区的充分测试。
归档时间: |
|
查看次数: |
1185 次 |
最近记录: |