使用SQL Server 2014 Enterprise的目的是导入1GB的CSV文件。数据被批量加载到数据库表中,其中大多数字段被预定义为varchar(64)。然后创建聚簇列存储索引。对于数据的性质,这是有意义的,因为同一列中的值重复有规律。然后尝试将字段更改为浮动。
例如:
ALTER TABLE [dat].[HG_folder_3_2598]
ALTER COLUMN TOT_AU_MET_R float NOT NULL
群集列存储索引的创建可以将此速度提高到可能(或可能不)期望的速度。我们的想法是,可以处理执行此语句的代码中的任何错误(通过仔细的错误处理),并确定是否无法升级列中的任何数据。
然而,经常有人
错误601:由于SQL Server数据移动,无法继续使用NOLOCK扫描。
这将导致SQL Server Management Studio查询窗口以及使用ADO.net的c#代码。只要重新执行前面提到的alter table语句,查询就会成功更改列,前提是列中的数据是数字。
问题是,是否有其他人注意到类似行为,以及他们是否了解更多此行为。特别是这个问题在最新版本的SQL-server中消失了吗?