修改 ntext、text 或 image 值
可通过下列方式修改 ntext、text 或 image 值: 使用数据库 API(例如 ADO、OLE DB 或 ODBC)执行 UPDATE 或 INSERT 语句,并将程序变量与 ntext、text 或 image 列的参数标记绑定。然后调用相应的数据库 API 函数,逐块向数据库发送长数据。DB-Library 支持与其 text 和 image 函数相同的功能。
使用 WRITETEXT 语句重写该列的整个数据值。 
例如,以下查询将更改 New Moon Books 中 pr_info 列的内容:USE pubs
sp_dboption 'pubs', 'select into/bulkcopy', 'true'
DECLARE @ptrval varbinary(16)
SELECT @ptrval = TEXTPTR(pr_info) 
FROM pub_info pr INNER JOIN publishers p
    ON p.pub_id = pr.pub_id 
    AND p.pub_name = 'New Moon Books'
WRITETEXT pub_info.pr_info @ptrval 'New Moon Books (NMB) '
sp_dboption 'pubs', 'select into/bulkcopy', 'true'使用 UPDATETEXT 语句更新 ntext、text 或 image 列的特定数据块。 
例如,以下查询用字母 z 取代 New Moon Books 中 text 列的第 88 个字符(Moon 中的第二个字母 o):USE pubs
sp_dboption 'pubs', 'select into/bulkcopy', 'true'
DECLARE @ptrval varbinary(16)
SELECT @ptrval = TEXTPTR(pr_info) 
    FROM pub_info pr INNER JOIN publishers p
        ON p.pub_id = pr.pub_id 
        AND p.pub_name = 'New Moon Books'
UPDATETEXT pub_info.pr_info @ptrval 88 1 'z' 
sp_dboption 'pubs', 'select into/bulkcopy', 'false'

解决方案 »

  1.   

    局部变量,text、ntext 和 image 数据类型无效。
    说得很清楚了 
    参数
    @local_variable是变量的名称。变量名必须以 at 符 (@) 开头。局部变量名必须符合标识符规则。有关更多信息,请参见使用标识符。data_type是任何由系统提供的或用户定义的数据类型。变量不能是 text、ntext 或 image 数据类型。有关系统数据类型的更多信息,请参见数据类型。有关用户定义数据类型的更多信息,请参见 sp_addtype。@cursor_variable_name是游标变量的名称。游标变量名必须以 at 符 (@) 开头并遵从标识符规则。CURSOR指定变量是局部游标变量。table_type_definition定义表数据类型。表声明包括列定义、名称、数据类型和约束。允许的约束类型只包括 PRIMARY KEY、UNIQUE、NULL 和 CHECK。用户定义的数据类型不能用作列标量数据类型。table_type_definition 是在 CREATE TABLE 中用于定义表的信息子集。元素和基本定义都包含在该定义中;有关更多信息,请参见 CREATE TABLE。
      

  2.   

    @strReturn Ntext,@Message ntext局部变量
      

  3.   

    是吗,可是返回变量RETURNS也报那个错了,而且这里面的数据量确实很大,不用ntext用啥呀
      

  4.   

    这是我在sql版问的问题中第一个不欢而散的帖子,郁闷。