我已经在alter statement下面运行了,这是部署的一部分,但在运行这个tr-log文件时很快就满了。
ALTER TABLE [dbo].[MY_ORDER_LINE] ALTER COLUMN [CREATED_BY] INT NULL ; --This has not yet been updated – column data type is still ‘smallint’
ALTER TABLE [dbo].[MY_ORDER_LINE] ALTER COLUMN [LAST_UPDATED_BY] INT NULL; -- This has not yet been updated – column data type is still ‘smallint’
ALTER TABLE [dbo].[MY_ORDER_LINE] ALTER COLUMN [LAST_UPDATE_LOGIN] INT NULL; -- This has not yet been updated – column data type is still ‘smallint’
GO
SQL Server版本:
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
Oct 19 2012 13:38:57
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
操作系统:Windows Server 2008 R2标准64位
RAM:8 GB
日志文件大小:53 gb
我已经安排了空间,但现在这个查询已经过去120分钟并且没有完成。
也没有阻挡。
如何完成它?
答案 0 :(得分:1)
首先,单独尝试每个ALTER
语句,看看是否有帮助。
不幸的是,除此之外,您不能像使用ALTER
或UPDATE
一样批量生成DELETE
1000条记录。
你可以执行以下操作:
[My_Order_Line_New]
INSERT
将旧表中的所有行复制到新表中。这可以批量进行,因此您的日志不会爆炸。[My_Order_Line]
更改为[My_Order_Line_Old]
,然后将[My_Order_Line_New]
更改为[My_Order_Line]
。答案 1 :(得分:-2)
切换到简单恢复,运行ALTER语句,然后切换回事务恢复。