我有一个非常大的内存性能问题,因为它会通过两个NVARCHAR(4000)
列来处理该表。事实是这些列永远不会比NVARCHAR(260)
大。
使用
ALTER TABLE [table] ALTER COLUMN [col] NVARCHAR(260) NULL
导致SQL Server重写整个表(数十亿行,仅更改任何内容)是不可行的。增大列宽不会出现此问题,但减小它确实会出现。
我尝试创建约束CHECK (DATALENGTH([col]) <= 520)
或CHECK (LEN([col]) <= 260)
,但SQL Server仍决定重新编写整个表。
有什么方法可以将列数据类型更改为仅元数据操作?不用重写整个表吗?