相关疑难解决方法(0)

使用 NOINIT 从 .bak 文件中恢复 SQL

希望这对外面的人来说是一个很好且快速的问题。它从我之前的问题继续。

我有一个要恢复的 .BAK 文件。.BAK 是用NOINIT参数创建的,以尝试保存以前的版本,因此附加了较新的数据(据我所知)。我想知道这是否意味着 - 在还原时 - 还原会尝试使用旧版本的备份?

即我已经备份了数据库,向其中添加了新表,执行了另一个完整备份并删除了添加的表。当我尝试恢复时,我没有取回“新”表,这是因为恢复在 .BAK 中找到了在“新表”之前创建的数据库版本吗?如果是这样,我如何指定使用最新数据?

编辑:抱歉没有早点说明,这是使用 SQL Server 数据库

sql-server backup restore

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

在while循环中显示局部变量

我有一个运行数天的 while 循环(bydesign)请参阅相关是否有限制可以将多少个备份附加到单个文件?

我有一个显示循环计数的局部变量,当我在查询窗口中运行它时,我可以用 print @counter

我现在正在作业中运行 while 循环,并且我想显示该@counter值。经过一番研究,我尝试了RAISERROR (Transact-SQL),它应该显示在 SQL 错误日志中,但它不起作用。我读了Using RAISERROR我认为我的代码是正确的,但不确定它是否可以在带有局部变量的 While 循环中使用。

创建数据库并准备它

USE [master]
GO
Create database T_test

USE [master]
GO
ALTER DATABASE [T_test] SET RECOVERY FULL WITH NO_WAIT
GO

BACKUP DATABASE T_test to disk= N'K:\Test\T_test.bak' with noinit --Create first full
GO
Run Code Online (Sandbox Code Playgroud)

尝试在查询窗口中运行以进行测试

DECLARE @counter int
SET @counter = 0
WHILE 1=1
BEGIN 
BACKUP DATABASE [T_test] TO  
DISK = N'K:\Test\T_Test.diff' WITH  DIFFERENTIAL , NOFORMAT, NOINIT,  
NAME = N'T_Test-Diff Database …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2017

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

我可以在正在运行的数据库上移动 SQL Server 备份文件吗?

我们的备份驱动器充满了 TRN 和 BAK 文件。我在服务器上有管理权限,但我没有登录数据库。

我可以将最旧的文件移到其他地方而不导致服务中断吗?哪个?

sql-server backup sql-server-2014

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