varchar(max) MS SQL Server 2000,problems?
varchar(max) MS SQL Server 2000,problems?
我继承了一个asp.net网站项目,目前它的后端是运行在SQL Server 2000上的。
我在本地数据库的副本上进行了一些数据库更改,使用的是SQL Server 2005 Express。我使用varchar(max)
列创建了一个表。它们用于存储任意长度的XHTML代码片段。
在stackoverflow上浏览时,我遇到了这个问题:
用户mattruma说他通过使用在SQL Server 2000上使用varchar(max)
这种方式"吃了亏"。
鉴于生产数据库运行在SQL Server 2000上,我应该使用什么替代varchar(max)
呢?
提前感谢任何帮助!
在SQL Server 2000中,varchar(MAX)
是不被支持的,因此如果你的数据库是SQL Server 2000,varchar(MAX)
的限制就不是一个问题。如果你需要存储超过8K个字符,你唯一的选择就是使用TEXT
列。然而,需要注意的是TEXT
列也有很多限制。
例如,你不能轻松地对TEXT
列进行排序或分组,也不能将它们与其他列进行比较。也就是说,你不能像这样查询:Select * from mytable where Mytext1 = mytext2
。
其他相关问题包括:
- 我建议无论选择哪种方式,都使用
NText
或NVarchar
列来支持Unicode。 - 如果表中有很多其他列,而
varchar(8000)
列经常接近满,可能会出现超过8K行限制的问题。也要记住这一点。