将列从nvarchar(max)转换为varchar(max)使其更大?

时间:2016-12-09 23:11:46

标签: sql-server-2008

我有一个包含2000万行的表,其中包含4列数据类型:

  • nvarchar(20)
  • nvarchar(255)
  • nvarchar(255)
  • 为nvarchar(最大)

由于我没有存储unicode字符,我应该能够转换为varchar并只使用一半的空间,对吗?

ALTER TABLE myTable ALTER COLUMN myColumn1 varchar(20) not null; 
ALTER TABLE myTable ALTER COLUMN myColumn2 varchar(255) not null; 
ALTER TABLE myTable ALTER COLUMN myColumn3 varchar(255) not null; 
ALTER TABLE myTable ALTER COLUMN myColumn4 varchar(max) not null; 
UPDATE STATISTICS Production.Product(Products) WITH FULLSCAN, NORECOMPUTE;

好吧,在更改了列并更新统计信息后,表显示实际上表格从9GB增加到13GB。对此有何看法?

以下是我如何确定表格大小:

https://stackoverflow.com/a/7892349/7274782

0 个答案:

没有答案