【发布时间】:2012-05-10 23:39:12
【问题描述】:
我有一个包含 75 万条记录的“巨大”表。我需要更改此表的某些列。我有以下陈述:
ALTER TABLE [MyTable] ALTER COLUMN [MyFirstField] NTEXT NULL
ALTER TABLE [MyTable] ALTER COLUMN [MySecondField] NVARCHAR (50) NULL
-
MyFirstField 由
NTEXT COLLATE SQL_Latin1_General_CP1_CI_AS NULL更改 -
MySecondField 由
NVARCHAR (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL更改
转换所有记录需要相当长的时间。有什么想法可以加快这个过程吗?
【问题讨论】:
-
一个有 750k 记录的表远非巨大。
-
@TimSchmelter,我知道 :-) 这就是为什么我很惊讶需要这么长时间 :-)
-
稍微偏离主题,但使用
NVARCHAR(MAX)而不是NTEXT,NTEXT 最终将从SQL-Server 中删除。 msdn.microsoft.com/en-us/library/ms187993.aspx -
会比较慢,但您可以创建新表,然后一次插入 X 条记录。再说一遍会更长,但你可以插入 100 并且至少有时间。
标签: sql sql-server performance tsql sql-server-2005