Tag: mssql2005’

MSSQL2005大值数据类型varchar(max)、nvarchar(max)、varbinary(max)

 - by Hector

在SQL Server 2000中,VARCHAR的最大长度是8000,如果字符串的长度超过8000,保存在VARCHAR中时就会被截断。
也不能定义DECLARE @largeText TEXT ,常见的字符串函数也不能使用,除了datalength,substring(substring中英文字符作为一个字符)。

这几个数据类型在行为上和较小的数据类型 varchar、nvarchar 和 varbinary 相同,最大长度都为2^31-1。

微软的说法是用这个数据类型来代替之前的text、ntext 和 image 数据类型,它们之间的对应关系为:

varchar(max)——-text;

nvarchar(max)—–ntext;

varbinary(max)—-image.

注意:
1.VARCHAR和VARCHAR(MAX)混在一起做处理时还是会变成VARCHAR,从而可能被截断,所以需要全转成VARCHAR(MAX)

2.在变量声明中使用 char 和 varchar 数据类型时,这些数据类型的默认值 n 为 1。

3.在 CAST 和 CONVERT 中使用 varchar 时,显示 n 的默认值为30。

MSSQL之指定行数

 - by Hector

SET ROWCOUNT { number | @number_var }

使 SQL Server 在返回指定的行数之后停止处理查询。 要将此选项设置为 off 以便返回所有的行,请将 SET ROWCOUNT 指定为 0。
SET ROWCOUNT 的设置是在执行时或运行时设置,而不是在分析时设置。

和TOP合用

如果行数值较小,则 SET ROWCOUNT 将覆盖 SELECT 语句 TOP 关键字。

当 INSERT、UPDATE 和 DELETE 语句使用显式 TOP 表达式时,这些语句将忽略 SET ROWCOUNT。这包括 INSERT 后跟 SELECT 子句的语句。