sql-server – 如何在不知道目标路径或文件名的情况下恢复SQL Se
发布时间:2020-12-12 08:47:14 所属栏目:MsSql教程 来源:网络整理
导读:我需要以编程方式(T-SQL)在SQL Server 2008中还原数据库备份.此备份来自不同的服务器,原始数据库名称也可能不同. (实际上,我将数据库从一些服务器复制到另一个服务器上的新数据库.) 显然,我必须使用RESTORE DATABASE … WITH MOVE,它可以工作,但我需要知道文
我需要以编程方式(T-SQL)在SQL Server 2008中还原数据库备份.此备份来自不同的服务器,原始数据库名称也可能不同. (实际上,我将数据库从一些服务器复制到另一个服务器上的新数据库.)
显然,我必须使用RESTORE DATABASE … WITH MOVE,它可以工作,但我需要知道文件应该在哪里恢复,以及如何命名.尽管搜索,我还没有找到什么似乎是最基本的任务:只需使用默认路径和文件名,即执行SQL Server在发出CREATE DATABASE时执行的任何操作 – 您不必指定路径为了这个命令,为什么需要RESTORE? 我忽略了一些微不足道的解决方案,或者我真的必须列出文件,不知何故从SQL Server配置中找到数据库目录,并使用该信息构建RESTORE命令?谢谢. (与PostgreSQL相比,在使用pg_restore时,您指定了已创建的目标数据库;创建时,您有选择 – 非强制性)指定非默认表空间,但如果没有,则只是不在乎文件的物理存储位置.) 解决方法CREATE DATABASE命令将使用默认路径创建数据库,因此您可以创建一个数据库,然后使用替换语法(sqlcmd模式)对其进行恢复::setvar DatabaseName MyDatabase declare @fileName varchar(255) set @fileName = 'c:backupmybackup.bak' if db_id('$(DatabaseName)') is null CREATE DATABASE [$(DatabaseName)] RESTORE DATABASE [$(DatabaseName)] FROM DISK = @fileName WITH REPLACE (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |