我在以下场景中工作:我正在创建一个重新创建整个数据库的脚本。该脚本涉及破坏数据库及其所有对象的重建,以及来自链接服务器的大量插入。这个想法是能够随意重新创建数据库,直到开发阶段结束。我的问题是脚本生成高日志活动,很快就会出现 CHECKPOINT。在删除数据库之前,我正在终止脚本中的所有连接,但由于 CHECKPOINT 是一个系统进程,我无法终止它,因此我的脚本失败了。在这个阶段我不需要恢复这个数据库,我的问题是我是否可以禁用这个数据库的日志以避免检查点。
我在以下场景中工作:我正在创建一个重新创建整个数据库的脚本。该脚本涉及破坏数据库及其所有对象的重建,以及来自链接服务器的大量插入。这个想法是能够随意重新创建数据库,直到开发阶段结束。我的问题是脚本生成高日志活动,很快就会出现 CHECKPOINT。在删除数据库之前,我正在终止脚本中的所有连接,但由于 CHECKPOINT 是一个系统进程,我无法终止它,因此我的脚本失败了。在这个阶段我不需要恢复这个数据库,我的问题是我是否可以禁用这个数据库的日志以避免检查点。
不,不能禁用日志。即使您为 SIMPLE 恢复模型设置了数据库选项,该日志仍将存在,因为它是事务一致活动所必需的,这是 SQL Server 的支柱。
尽管如此,在 SIMPLE 恢复模式下运行应该会减少您面临的冲突。由于这是 SQL Server 2008,为什么不尝试在重建之前删除数据库,如下所示:
编辑:对脚本进行小幅更新以显示如何保持对数据库的控制。
第一个 ALTER 可能不是必需的,但它有助于防止其他人以“单一”用户身份进入。