SET TEXTSIZE 指定由 SELECT 语句返回的 text 和 ntext 数据的大小。语法 SET TEXTSIZE { number } 参数 number是 text 数据的大小(一个整数),以字节为单位。SET TEXTSIZE 的最大设置为 2 GB(以字节为单位指定)。设置值为 0 时将大小重置为默认值 (4 KB)。注释 设置 SET TEXTSIZE 会影响 @@TEXTSIZE 函数。DB-Library 变量 DBTEXTLIMIT 也限制由 SELECT 语句返回的 text 数据大小。如果将 DBTEXTLIMIT 设置为小于 TEXTSIZE 的大小,将只返回 DBTEXTLIMIT 所指定的数量。有关更多信息,请参见 SQL Server 联机丛书中的"用于 C 语言的 DB-Library 程序设计"。SQL Server ODBC 驱动程序和用于 SQL Server 的 Microsoft OLE DB 提供程序在连接时自动将 TEXTSIZE 设置为 2147483647。SET TEXTSIZE 的设置是在执行或运行时设置,而不是在分析时设置。权限 SET TEXTSIZE 权限默认授予所有用户。
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 最新版本:20070130http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
读取 text、ntext 或 image 列中的 text、ntext 或 image 值,从指定的偏移量开始读取指定的字节数。语法
READTEXT { table.column text_ptr offset size } [ HOLDLOCK ] 参数
table.column是从中读取的表和列的名称。表名和列名必须符合标识符的规则。必须指定表名和列名,不过可以选择是否指定数据库名称和所有者名称。text_ptr有效文本指针。text_ptr 必须是 binary(16)。offset开始读取 text、image 或 ntext 数据之前跳过的字节数(使用 text 或 image 数据类型时)或字符数(使用 ntext 数据类型时)。使用 ntext 数据类型时,offset 是在开始读取数据前跳过的字符数。使用 text 或 image 数据类型时,offset 是在开始读取数据前跳过的字节数。 size是要读取数据的字节数(使用 text 或 image 数据类型时)或字符数(使用 ntext 数据类型时)。如果 size 是 0,则表示读取了 4 KB 字节的数据。HOLDLOCK使文本值一直锁定到事务结束。其他用户可以读取该值,但是不能对其进行修改。示例
下例读取 pub_info 表中 pr_info 列的第 2 个至第 26 个字符。USE pubs
GO
DECLARE @ptrval varbinary(16)
SELECT @ptrval = TEXTPTR(pr_info)
FROM pub_info pr INNER JOIN publishers p
ON pr.pub_id = p.pub_id
AND p.pub_name = 'New Moon Books'
READTEXT pub_info.pr_info @ptrval 1 25
GO
指定由 SELECT 语句返回的 text 和 ntext 数据的大小。语法
SET TEXTSIZE { number } 参数
number是 text 数据的大小(一个整数),以字节为单位。SET TEXTSIZE 的最大设置为 2 GB(以字节为单位指定)。设置值为 0 时将大小重置为默认值 (4 KB)。注释
设置 SET TEXTSIZE 会影响 @@TEXTSIZE 函数。DB-Library 变量 DBTEXTLIMIT 也限制由 SELECT 语句返回的 text 数据大小。如果将 DBTEXTLIMIT 设置为小于 TEXTSIZE 的大小,将只返回 DBTEXTLIMIT 所指定的数量。有关更多信息,请参见 SQL Server 联机丛书中的"用于 C 语言的 DB-Library 程序设计"。SQL Server ODBC 驱动程序和用于 SQL Server 的 Microsoft OLE DB 提供程序在连接时自动将 TEXTSIZE 设置为 2147483647。SET TEXTSIZE 的设置是在执行或运行时设置,而不是在分析时设置。权限
SET TEXTSIZE 权限默认授予所有用户。
--测试数据
CREATE TABLE tb(col ntext)
-- 插入
INSERT tb VALUES(REPLICATE( '0001,000,',1))
--查看
select * from tb
--结果
/*
0001,000,
*/
-- 追加数据
DECLARE @p binary(16)
SELECT @p=TEXTPTR(col) FROM tb
UPDATETEXT tb.col @p NULL 0 tb.col @p--值为 NULL 则将新数据追加到现有数据值中。
--值为 0 表示不删除数据。
--查看
select * from tb
--结果
/*
0001,000,0001,000,
*/--重新写内容
WRITETEXT tb.col @p 'text内容'
--查看
select * from tb
--结果
/*
text内容
*/--追加数据
DECLARE @s VARCHAR(800)
set @s='追加......!'
UPDATETEXT tb.col @p null 0 @s
--查看
select * from tb
--结果
/*
text内容追加......!
*/--删除测试表
drop table tb