0

我正在链接服务器上将大量数据从一个数据库归档到另一个数据库。我正在从 MS sql server 2000 复制到 MS sql server 2005。这涉及复制数百万条记录,然后删除它们。这一切都是通过动态脚本发生的。我想为此过程合并日志文件的缩小,但我无法让 DBCC SHRINKFILE 为链接服务器工作。这甚至可能吗?

4

1 回答 1

1

您应该可以sp_executesql通过链接服务器调用来做到这一点:

EXEC [LINKED_SERVER].MyDatabase.dbo.sp_executesql
    @statement = N'DBCC SHRINKFILE(''LogFileName'',0)'

不过,您可能应该重新考虑自动缩小日志文件,特别是如果此脚本运行如此频繁以至于您需要将其自动化。您最好备份日志或将恢复模式切换为简单,这样您就可以重用空间。(如果它要恢复到相同的大小,你真的通过缩小它来完成任何事情吗?事实上,你可以通过无意中引入文件系统碎片来使事情变得更糟。)

我并不是说您永远不需要以编程方式缩小文件,但想要这样做通常表明有其他问题 - 磁盘对于您的预期容量来说太小了,您的恢复模式错误等等。

于 2010-08-26T00:31:19.583 回答