我注意到,我可以写是否varchar(max)= varchar?
SELECT CAST(Min(mynumber) AS VARCHAR(Max))+'mystring' AS X
为
SELECT CAST(Min(mynumber) AS VARCHAR)+'mystring' X
我将遗憾地离开了(最大值)的参数?
我注意到,我可以写是否varchar(max)= varchar?
SELECT CAST(Min(mynumber) AS VARCHAR(Max))+'mystring' AS X
为
SELECT CAST(Min(mynumber) AS VARCHAR)+'mystring' X
我将遗憾地离开了(最大值)的参数?
当在数据定义或变量声明声明没有被指定一个varchar的lenght,则默认长度为1.当使用CAST和CONVERT函数当未指定,则默认长度为30
见:char and varchar (Transact-SQL)
我觉得不指定varchar的长度是不好的做法。
你会后悔的(不太可能)局面MAX(mynumber)
拥有超过30个字符:
When n is not specified when using the
CAST
andCONVERT
functions, the default length is 30.
总是一个好主意,可以在您投射的情况下定义字符数。或者,如果你正在定义一个变量(其中varchar的默认值为1)。这应该是第二天性。 – HLGEM 2010-06-28 14:26:00
VARCHAR(MAX)应该用于大型Objects.It使用正常的数据页面,直到内容实际填满8k数据。当溢出发生时,数据被存储为旧的TEXT,IMAGE,并且指针正在替换旧的内容。 Varchar用于可变长度,非Unicode字符数据。 n可以是从1到8,000的值。 Max表示最大存储大小为2^31-1字节。 希望它有帮助。
Yes和varchar(Max)不应该用于需要较小数据的字段,因为它有索引问题。 – HLGEM 2010-06-28 14:22:20
一般来说,你不应该使用varchar(max)。它应该很少使用,只有当您期望超过8000个常量varchar可以包含的字符时。用你认为应该包含的字符数来定义varchars。 – HLGEM 2010-06-28 14:24:05