需要在程序中或查询分析器中处理.下面是查询分析器中处理的例子:--text字段的替换处理--创建数据测试环境
create table test(id varchar(3),txt text)
insert into test
select '001','A*B'
go--定义替换的字符串
declare @s_str varchar(8000),@d_str varchar(8000)
select @s_str='*'  --要替换的字符串
,@d_str='+' --替换成的字符串--字符串替换处理
declare @p varbinary(16),@postion int,@rplen int
select @p=textptr(txt)
,@rplen=len(@s_str)
,@postion=charindex(@s_str,txt)-1
from test where id='001'while @postion>0
begin
updatetext test.txt @p @postion @rplen @d_str
select @postion=charindex(@s_str,txt)-1 from test
end--显示结果
select * from testgo
--删除数据测试环境
drop table test

解决方案 »

  1.   

    --text字段增加处理--创建测试表
    create table test(id varchar(3),detail text)
    insert into test
    select '001','A*B'--定义添加的的字符串
    declare @s_str varchar(8000),@postion int
    select @s_str='*C'  --要添加的字符串
    ,@postion=null --追加的位置,null 加在尾部,0 加在首部,其他值则加在指定位置--字符串添加处理
    declare @p varbinary(16)
    select @p=textptr(detail) from test where id='001'
    updatetext test.detail @p @postion 0 @s_str--显示处理结果
    select * from test
    go--删除测试表
    drop table test
      

  2.   

    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 权限默认授予所有用户。
      

  3.   

    @@TEXTSIZE
    返回 SET 语句 TEXTSIZE 选项的当前值,它指定 SELECT 语句返回的 text 或 image 数据的最大长度,以字节为单位。语法
    @@TEXTSIZE返回类型
    integer注释
    默认大小是 4096 字节。示例
    下面的示例用 SELECT 语句显示用 SET TEXTSIZE 语句改变前后的 @@TEXTSIZE 值。SELECT @@TEXTSIZE
    SET TEXTSIZE 2048
    SELECT @@TEXTSIZE下面是结果集:------------------------
    64512------------------------
    2048
      

  4.   

    ============================插入text类型======================
    create table aaa(a int,b text)
    goCREATE PROCEDURE sp_textcopy 
      @srvname    varchar (30), 
      @login      varchar (30), 
      @password    varchar (30), 
      @dbname      varchar (30), 
      @tbname      varchar (30), 
      @colname    varchar (30), 
      @filename    varchar (30), 
      @whereclause varchar (40), 
      @direction  char(1) 
    AS 
    /* 这是使用textcopy工具将文件插入到数据库中,如果有前台工具可以用前台开发工具将文件插入,这里为了演示 */
    DECLARE @exec_str varchar (255) 
    SELECT @exec_str='textcopy /S '+@srvname+' /U '+@login+' /P '+@password+' /D '+@dbname+' /T'+@tbname+' /C '+@colname+' /W"'+@whereclause+'" /F"'+@filename+'" /'+@direction
    EXEC master..xp_cmdshell @exec_str
    goinsert aaa values(1,'') --''是必须的不是null
    sp_textcopy 'daliserver','sa','element','test','aaa','b','c:\tt.txt','where a=1','I' --注意条件是 a=1
    go
    drop table aaa
    go
    drop proc sp_textcopy前提c:\下有tt.txt文件,如果报textcopy不是可执行文件的话,你就到
    C:\Program Files\Microsoft SQL Server\MSSQL\Binn
    目录下拷备 textcopy.exe到:
    C:\Program Files\Microsoft SQL Server\80\Tools\Binn
      

  5.   

    多谢各位了,在企业管理器里,直接在网格中,如果有2000多个字节,就显示Long Text了,是不是不能直接在网格中看到和修改内容了?