需要在程序中或查询分析器中处理.下面是查询分析器中处理的例子:--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
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
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
指定由 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 权限默认授予所有用户。
返回 SET 语句 TEXTSIZE 选项的当前值,它指定 SELECT 语句返回的 text 或 image 数据的最大长度,以字节为单位。语法
@@TEXTSIZE返回类型
integer注释
默认大小是 4096 字节。示例
下面的示例用 SELECT 语句显示用 SET TEXTSIZE 语句改变前后的 @@TEXTSIZE 值。SELECT @@TEXTSIZE
SET TEXTSIZE 2048
SELECT @@TEXTSIZE下面是结果集:------------------------
64512------------------------
2048
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