NVARCHAR(3000)可能导致什么问题

时间:2008-11-20 15:33:15

标签: sql sql-server sql-server-2005

我有一个已经很大的表,我的客户要求我延长注释字段的长度。 notes字段已经是NVARCHAR(1000),我被要求将它扩展到3000.长期解决方案是将注释从表中移出并创建一个使用仅加入的NVARCHAR(max)字段的注释表在必要时。我的问题是关于短期的。知道如果我现在将字段增加到NVARCHAR(3000),将来会移出这个字段会有什么问题吗?

5 个答案:

答案 0 :(得分:3)

不推荐使用

text和ntext,而使用varchar(max)和nvarchar(max)。所以nvarchar(3000)应该没问题。

答案 1 :(得分:2)

您可能已经知道这一点,但只是确保增加的长度不会使您的总记录长度超过8000.我很确定这仍然适用于2005/2008。

答案 2 :(得分:1)

对于临时解决方案,nvarchar(3000)应该没问题。你最多可以达到nvarchar(4000)。正如之前由km.srd.myopenid.com发布的那样,请确保行的整个长度不超过8000(请记住,nvarchar是常规varchar大小的2倍 - 这就是为什么你只能有nvarchar(4000) ),但你可以有varchar(8000))。

答案 3 :(得分:1)

我建议将列更改为NTEXT。您几乎不会限制数据量,并且数据不会与其余行数据一起存储。这有助于防止您达到最大行大小限制。

唯一的缺点是您只能对该列执行“LIKE”搜索,而您无法对其进行索引。但是,如果它是一个音符字段,我的猜测是你根本就没有对它进行任何搜索。

答案 4 :(得分:0)

您可能会遇到更慢的问题,因为您的数据页可能会分开以容纳更大的字段。您可以通过执行此操作创建一个允许记录超过8060字节的结构,但请注意,如果您尝试添加实际包含的数据记录,那么您将遇到问题。