从 .bak 文件还原时,能否将表重命名为新数据库?

slickchick2

因此,我几乎编写了所有必须从 sql 2008 到 2016 的备份文件中恢复的 SQL 代码。问题是,其中一个名为 Students 的表在旧数据库和新数据库中具有相同的表结构(我m 也恢复到新数据库),但在旧数据库中,Students 是名称 Stdnents。有什么方法可以正确恢复吗?

RESTORE FILELISTONLY FROM DISK='f:\newBDbackup.bak'

declare @DefaultData nvarchar(512)
exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', @DefaultData output

declare @DefaultLog nvarchar(512)
exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', @DefaultLog output

declare @DefaultBackup nvarchar(512)
exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory', @DefaultBackup output

declare @MasterData nvarchar(512)
exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer\Parameters', N'SqlArg0', @MasterData output
select @MasterData=substring(@MasterData, 3, 255)
select @MasterData=substring(@MasterData, 1, len(@MasterData) - charindex('\', reverse(@MasterData)))

declare @MasterLog nvarchar(512)
exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer\Parameters', N'SqlArg2', @MasterLog output
select @MasterLog=substring(@MasterLog, 3, 255)
select @MasterLog=substring(@MasterLog, 1, len(@MasterLog) - charindex('\', reverse(@MasterLog)))

select 
    isnull(@DefaultData, @MasterData) DefaultData, 
    isnull(@DefaultLog, @MasterLog) DefaultLog,
    isnull(@DefaultBackup, @MasterLog) DefaultBackup

declare @NewDefaultData nvarchar(512)
select isnull(@NewDefaultData, CONVERT(nvarchar(512), @DefaultData))
declare @NewDefaultLog nvarchar(512)
select isnull(@NewDefaultLog, CONVERT(nvarchar(512), @DefaultLog)) 

RESTORE DATABASE NewSqlDatabase FROM DISK='f:\newBDbackup.bak'
WITH
    MOVE 'newDatabase' TO @NewDefaultData,
    MOVE 'newDatabase_log' TO @NewDefaultLog
超级大块头

不确定我是否理解这个问题,但您能否在恢复后立即将表“Stdents”重命名为“Students”(sp_rename)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章