如何构建脚本来备份SQL Server中的所有数据库?
我们需要在一个SQL Server实例中备份40个数据库。我们使用以下脚本备份每个数据库:如何构建脚本来备份SQL Server中的所有数据库?,sql,sql-server,sql-server-2005,scripting,backup,Sql,Sql Server,Sql Server 2005,Scripting,Backup,我们需要在一个SQL Server实例中备份40个数据库。我们使用以下脚本备份每个数据库: BACKUP DATABASE [dbname1] TO DISK = N'J:\SQLBACKUPS\dbname1.bak' WITH NOFORMAT, INIT, NAME = N'dbname1-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO declare @backupSetId as int select
BACKUP DATABASE [dbname1] TO DISK = N'J:\SQLBACKUPS\dbname1.bak' WITH NOFORMAT, INIT, NAME = N'dbname1-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'dbname1' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'dbname1' )
if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database ''dbname1'' not found.', 16, 1) end
RESTORE VERIFYONLY FROM DISK = N'J:\SQLBACKUPS\dbname1.bak' WITH FILE = @backupSetId, NOUNLOAD, NOREWIND
GO
我们希望在脚本中添加获取每个数据库并在上面的脚本中替换它的功能。基本上是一个脚本,它将从引擎创建和验证每个数据库备份
我在找这样的东西:
For each database in database-list
sp_backup(database) // this is the call to the script above.
End For
有什么想法吗?也许您可以检查存储过程
EXEC sp_MSForEachDB 'EXEC sp_backup ?'
火车在哪里?mark代表每次迭代中的当前数据库。也许您可以检查存储过程
EXEC sp_MSForEachDB 'EXEC sp_backup ?'
火车在哪里?mark代表每次迭代中的当前数据库。类似于:
DECLARE @SQL varchar(max)
SET @SQL = ''
SELECT @SQL = @SQL + 'BACKUP ' + Name + ' To Disk=''c:\' + Name + '.bak'';'
FROM sys.sysdatabases
EXEC(@SQL)
比如:
DECLARE @SQL varchar(max)
SET @SQL = ''
SELECT @SQL = @SQL + 'BACKUP ' + Name + ' To Disk=''c:\' + Name + '.bak'';'
FROM sys.sysdatabases
EXEC(@SQL)
你也说了“核实”。。。这需要每个数据库提供第二条语句(,以及提供的其他答案)
我也会调查使用包含索引维护…您也说过“验证”…这将需要每个数据库的第二条语句(,以及提供的其他答案)
我也会调查使用以包括索引维护…使用。选择“备份所有非系统数据库”使用。选择“备份所有非系统数据库”能够备份给定服务器实例上的所有数据库,然后将备份发送到Dropbox、FTP、Amazon S3、Google Drive或本地/网络文件夹。能够备份给定服务器实例上的所有数据库,然后将备份发送到Dropbox、FTP、Amazon S3、Google Drive或本地/网络文件夹。…和restores;如何使用脚本还原?…和还原;如何使用脚本还原?