--如果是:ntext--处理方式如下:declare @TableA table(Content ntext) insert into @TableA select 'http://teo/hwweb/upload/xx1.jpg(xx2.jpg)'update @TableA set Content=replace(convert(varchar(8000),Content),'http://teo/hwweb/','../../') where patindex('%http://teo/hwweb/%',Content)>0select * from @TableA--结果 ../../upload/xx1.jpg(xx2.jpg)(所影响的行数为 1 行)
to: zlp321002 可行,不过它将content中的一些换行符,退位符,回车符都变为???了.请问如何解决?2.还有一种情况,在asp.net后台程序中如何实现,即,过滤后..直接插入到数据库中... 等待中,,,高人救急!
--如果是varchar数据类型,直接替换就可以了
--如果是Text数据类型,要用updatetext 一条一条循环处理--测试环境
declare @TableA table(Content varchar(2000))
insert into @TableA select 'http://teo/hwweb/upload/xx1.jpg(xx2.jpg)'
--替换语句
update @TableA set Content=replace(Content,'http://teo/hwweb/','../../')
where patindex('%http://teo/hwweb/%',Content)>0
--查看结果
select * from @TableA
--结果
../../upload/xx1.jpg(xx2.jpg)(所影响的行数为 1 行)
http://teo/hwweb/upload/xx1.jpg(xx2.jpg) 可以先找到最后一个/位置,再取得xx1.jpg文件名,再后面就容易了.........
insert into @TableA select 'http://teo/hwweb/upload/xx1.jpg(xx2.jpg)'update @TableA set Content=replace(convert(varchar(8000),Content),'http://teo/hwweb/','../../')
where patindex('%http://teo/hwweb/%',Content)>0select * from @TableA--结果
../../upload/xx1.jpg(xx2.jpg)(所影响的行数为 1 行)
可行,不过它将content中的一些换行符,退位符,回车符都变为???了.请问如何解决?2.还有一种情况,在asp.net后台程序中如何实现,即,过滤后..直接插入到数据库中...
等待中,,,高人救急!
改为:replace(convert(nvarchar(4000),Content),'http://teo/hwweb/','../../')