我有一个仓库表,里面有16吨数据。我有一些整数列。对于我们编写的每个查询,我们都必须将它们转换为BIGINT,因为SUM太大而无法容纳在INT中。
现在,我们正在开发一个新的数据集市。因此,我们认为,为什么不将所有这些列都更改为BIGINT呢?对于新的查询集,我们不必担心。
由于数据已经加载,因此我认为我将使用Management Studio并更改数据类型。但是我首先得到一个警告:
Saving Definition Changes to tables with large amounts of data could take a considerable amount of time. While changes are being saved, table data will not be accessible.
然后我得到一个错误:
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
我该如何解决?
如果这些列中的一列或多列没有约束(例如外键,索引,默认值,规则等),则您应该能够通过以下方法快速更改每一列
ALTER TABLE monster ALTER COLUMN MyIntCol1 bigint
Management Studio的更改SQL很少是最高效的,并且倾向于使用临时表来进行任何修改现有列的操作。