小编BSa*_*ers的帖子

我可以使用脚本从 .bak 文件恢复多个 SQL 数据库吗?

我正在将 100 多个 SQL 数据库迁移到新位置的新服务器。我有适当的维护计划来进行完整备份,然后是将.bak文件复制到临时目录的脚本。我正在寻找的是一种批量恢复这些.bak文件的方法,这样我就不必整个周末都手动进行。

我在这里找到了一个不错的存储过程:SQL 还原

我将其安装到位并进行了测试,但出现以下错误:

消息 3118,级别 16,状态 1,第 1 行
数据库“TF058”不存在。RESTORE 只能在恢复主文件的完整备份或文件备份时创建数据库。
消息 3013,级别 16,状态 1,第 1 行
RESTORE DATABASE 异常终止。

我正在运行 SQL Server 2012 并且数据库处于完全恢复模式。

sql-server restore sql-server-2012

5
推荐指数
1
解决办法
5636
查看次数

如何一次在我的所有数据库中运行此 SQL 查询?

我有一个查询,让我知道有关备份的基本信息。我有几个 SQL 服务器,我希望能够一次查询。是否可以同时在多台服务器上运行以下查询?

SELECT 
   A.[Server],
   A.database_name, 
   A.last_db_backup_date,
   B.backup_type, 
   B.backup_start_date, 
   B.expiration_date,
   B.backup_size, 
   B.logical_device_name, 
   B.physical_device_name,  
   B.backupset_name,
   B.description
FROM
   (
   SELECT  
       CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
       msdb.dbo.backupset.database_name, 
       MAX(msdb.dbo.backupset.backup_finish_date) AS last_db_backup_date
   FROM    msdb.dbo.backupmediafamily 
       INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id 
   GROUP BY
       msdb.dbo.backupset.database_name 
   ) AS A

   LEFT JOIN 

   (
   SELECT  
   CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
   msdb.dbo.backupset.database_name, 
   msdb.dbo.backupset.backup_start_date, 
   msdb.dbo.backupset.backup_finish_date,
   msdb.dbo.backupset.expiration_date,
   msdb.dbo.backupset.backup_size, 
   msdb.dbo.backupmediafamily.logical_device_name, 
   msdb.dbo.backupmediafamily.physical_device_name,  
   msdb.dbo.backupset.name AS backupset_name,
   msdb.dbo.backupset.description,
   CASE msdb..backupset.type  
       WHEN 'D' THEN 'Full Database'  
       WHEN 'L' THEN 'Log'  
       WHEN 'I' THEN 'Differential'  
       WHEN 'F' THEN 'File Level' …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005

1
推荐指数
1
解决办法
204
查看次数