• 相关软件
    >WRITETEXT 创建者:webmaster 更新时间:2006-02-16 15:51

    允许对现有的 textntextimage 列进行无日志记录的交互式更新。该语句将彻底重写受其影响的列中的任何现有数据。WRITETEXT 语句不能用在视图中的 textntextimage 列上。



    语法


    WRITETEXT { table.column text_ptr }

        
    [ WITH LOG ] { data }



    参数


    table.column



    要更新的表和 textntextimage 列的名称。表名和列名必须符合标识符的规则。有关更多信息,请参见使用标识符。指定数据库名和所有者名是可选的。



    text_ptr



    指向 textntextimage 数据的指针的值。text_ptr 的数据类型必须为 binary(16)。若要创建文本指针,请对 textntextimage 列用非 NULL 数据执行 INSERT 或 UPDATE 语句。有关创建文本指针的更多信息,请参见 INSERTUPDATE



    WITH LOG



    在 Microsoft® SQL Server™ 2000 中忽略。日志记录由数据库的实际恢复模型决定。



    data



    要存储的实际 textntextimage 数据。data 可以是字面值,也可以是变量。对于 textntextimage 数据,可以用 WRITETEXT 交互插入的文本的最大长度大约是 120 KB。



    注释


    请使用 WRITETEXT 来替换 textntextimage 数据,而用 UPDATETEXT 来修改 textntextimage 数据。UPDATETEXT 更灵活,因为它仅更改 textntextimage 列的某一部分,而不是整个列。



    如果数据库恢复模型简单或有大容量日志记录,则 WRITETEXT 是无日志记录的操作。这就意味着在将 textntextimage 数据写入数据库时,不会进行日志记录;因此,事务日志不会填满大量通常由这些数据类型组成的数据。



    为使 WRITETEXT 正常工作,列必须已经包含有效的文本指针。



    如果该表没有行内文本,则在通过 INSERT 向 text 列中放入显式或隐式空值时,SQL Server 不初始化 text 列,从而节省了空间,而且不能获取这类空值的文本指针。若要将 text 列初始化为 NULL,请使用 UPDATE 语句。如果该表有行内文本,就没有必要为空值初始化文本列,而且您始终可以获取文本指针。



    与 WRITETEXT 相比,DB-Library dbwritetextdbmoretext 函数以及 ODBC SQLPutData 函数速度较快且使用的动态内存较少。这些函数可以插入多达 2G 字节的 textntextimage 数据。



    在 SQL Server 2000 中,可能存在指向 textntextimage 数据的行内文本指针,但这些指针无效。有关 text in row 选项的信息,请参见 sp_tableoption。有关使文本指针无效的信息,请参见 sp_invalidate_textptr



    权限


    WRITETEXT 的权限默认地授予那些对指定的表拥有 SELECT 权限的用户。这些权限可在传递 SELECT 权限时传递。



    示例


    下例将文本指针放到局部变量 @ptrval 中,然后 WRITETEXT 将新的文本字符串放到 @ptrval 所指向的行中。



    USE pubs
    GO
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'
    GO
    DECLARE @ptrval binary(16)
    SELECT @ptrval = TEXTPTR(pr_info)
    FROM pub_info pr, publishers p
    WHERE p.pub_id = pr.pub_id
      AND p.pub_name = 'New Moon Books'
    WRITETEXT pub_info.pr_info @ptrval 'New Moon Books (NMB) has just released another top ten publication. With the latest publication this makes NMB the hottest new publisher of the year!'
    GO
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'false'
    GO
    相关文章
    本页查看次数: