CREATE  proc pr_textin @la integer, @text text 
as
DECLARE @ptrval varbinary(16)
begin 
update  talbedata set content='' where no=@laSELECT @ptrval = TEXTPTR(content) 
    FROM tabledata where no=@la
WRITETEXT  tabledata.content @ptrval @text
end
GO

解决方案 »

  1.   

    将变量@la改成参数@law.
    CREATE  proc pr_textin @law integer, @text text 
    asbegin 
    update  talbedata set content='' where no=@lawDECLARE @ptrval varbinary(16)
    SELECT @ptrval = TEXTPTR(content) 
        FROM tabledata where no=@law
    WRITETEXT  tabledata.content @ptrval @text
    end
    GO
      

  2.   

    CREATE  proc pr_textin @la integer, @text text 
    as
    DECLARE @ptrval varbinary(16)
    begin 
    update  talbedata set content='' where no=@laSELECT @ptrval = TEXTPTR(content) 
        FROM tabledata where no=@la
    WRITETEXT  tabledata.content @ptrval @text
    end
    GO
    对不起,我写错了,是这样的,语法没有错误的!总有提示错误
      

  3.   

    总提示‘sql server 内部错误,文本管理器无法执行当前语句’ 望高手指点
      

  4.   

    你的第5行,update  talbedata set content='' where no=@la
    和倒数第三行WRITETEXT  tabledata.content @ptrval @text
    中的talbedata 和 tabledata不统一??????是不是这个问题导致的。
      

  5.   

    CREATE  proc pr_textin @la integer, @text text 
    as
    DECLARE @ptrval varbinary(16)
    begin 
    update  tabledata set content='' where no=@laSELECT @ptrval = TEXTPTR(content) 
        FROM tabledata where no=@la
    WRITETEXT  tabledata.content @ptrval @text
    end
    GOfaint!!又改错了,是上面这样的,问题是大部分的文本是可以执行的,有少数文本出现‘sql server 内部错误,文本管理器无法执行当前语句’ 错误
      

  6.   

    在 SQL Server 2000 中,行内文本指针必须在事务内部使用。