READTEXT (Transact-SQL)

textntextimage 列读取 textntextimage 值,从指定的偏移量开始读取指定的字节数。

ms187365.note(zh-cn,SQL.90).gif重要提示:
后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 SUBSTRING 函数。

主题链接图标Transact-SQL 语法约定

语法

READTEXT { table.column text_ptr offset size } [ HOLDLOCK ]

参数

table**.**column

要对其执行读取操作的表和列的名称。表和列的名称必须符合标识符规则。必须指定表名和列名。但是,可根据需要指定数据库名称和数据库所有者名称。

text_ptr

有效的文本指针。text_ptr 必须是 binary(16)

offset

开始读取 textimagentext 数据之前,要跳过的字节数(使用 textimage 数据类型时)或字符数(使用 ntext 数据类型时)。

size

要读取的字节数(使用 textimage 数据类型时)或字符数(使用 ntext 数据类型时)。如果 size 为 0,则读取 4 KB 数据。

HOLDLOCK

使文本值被锁定以进行读取,直到事务结束为止。其他用户可读取该值,但不能对其进行修改。

备注

使用 TEXTPTR 函数可获得有效的 text_ptr 值。TEXTPTR 返回指向指定行中的 textntextimage 列的指针。如果返回了多行,则为指向返回的最后一行中的 textntextimage 列的指针。由于 TEXTPTR 返回 16 字节的二进制字符串,因此我们建议声明一个局部变量来保存该文本指针,然后在 READTEXT 中使用该变量。有关创建局部变量的详细信息,请参阅 DECLARE @local\_variable (Transact-SQL)

在 SQL Server 中,可能存在行内文本指针,但该指针可能无效。有关 text in row 选项的详细信息,请参阅 sp_tableoption (Transact-SQL)。有关使文本指针无效的详细信息,请参阅 sp_invalidate_textptr (Transact-SQL)

如果 @@TEXTSIZE 函数的值小于为 READTEXT 指定的大小,则该值将替代为 READTEXT 指定的大小。@@TEXTSIZE 函数指定对 SET TEXTSIZE 语句设置的返回数据的字节数的限制。有关为 TEXTSIZE 设置会话设置的详细信息,请参阅 SET TEXTSIZE (Transact-SQL)

权限

READTEXT 权限默认授予对指定的表具有 SELECT 权限的用户。可在转移 SELECT 权限时转移权限。

示例

以下示例读取 pub_info 表中 pr_info 列的第 2 个至第 26 个字符。

ms187365.note(zh-cn,SQL.90).gif注意:
若要运行此示例,必须安装 pubs 示例数据库。有关如何安装 pubs 示例数据库的信息,请参阅下载 Northwind 和 pubs 示例数据库
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

请参阅

参考

@@TEXTSIZE (Transact-SQL)
UPDATETEXT (Transact-SQL)
WRITETEXT (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助