2010-06-28 74 views
4

我注意到,我可以写是否varchar(max)= varchar?

SELECT CAST(Min(mynumber) AS VARCHAR(Max))+'mystring' AS X 

SELECT CAST(Min(mynumber) AS VARCHAR)+'mystring' X 

我将遗憾地离开了(最大值)的参数?

+0

一般来说,你不应该使用varchar(max)。它应该很少使用,只有当您期望超过8000个常量varchar可以包含的字符时。用你认为应该包含的字符数来定义varchars。 – HLGEM 2010-06-28 14:24:05

回答

2

当在数据定义或变量声明声明没有被指定一个varchar的lenght,则默认长度为1.当使用CAST和CONVERT函数当未指定,则默认长度为30

见:char and varchar (Transact-SQL)

我觉得不指定varchar的长度是不好的做法。

3

VARCHAR(MAX)应该用于大型Objects.It使用正常的数据页面,直到内容实际填满8k数据。当溢出发生时,数据被存储为旧的TEXT,IMAGE,并且指针正在替换旧的内容。 Varchar用于可变长度,非Unicode字符数据。 n可以是从1到8,000的值。 Max表示最大存储大小为2^31-1字节。 希望它有帮助。

+0

Yes和varchar(Max)不应该用于需要较小数据的字段,因为它有索引问题。 – HLGEM 2010-06-28 14:22:20