SQL2008 sql批量替换字段值。

精选国内外互联网行业最新文章及报告,让网友获得最新的海内外互联网动态
当前位置: >
MSSQL批量替换语句 在SQL SERVER中批量替换字符串的方法
编辑:admin
方法一:(这种是最常用的,因为很多大段的内容都使用text ntext等数据类型,而我们通常也是替换里面的内容) varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 复制代码 代码如下:update 表名 set 字段名=replace(cast(与前面一样的字段名 as varchar(8000)) ,'原本内容','想要替换成什么') 方法二:(替换其他数据类型字段的语句,实际应用中不常见) 复制代码 代码如下:update [表名] set 字段名 = replace(与前面一样的字段名,'原本内容','想要替换成什么') 以下是补充:1。如何批量替换ntext字段里面的数据 问题描述: 我想把数据库中News表中的字段content中的一些字符批量替换。 我的content字段是ntext类型的。 我想替换的字段是content字段,我想把里面的替换成,替换方法是: update News set content = replace(cast(content as varchar(8000)), '', '') 2。如何批量替换varchar和nvarchar类型 varchar和nvarchar类型是支持replace,所以如果你的text/ntext不超过可以先转换成前面两种类型再使用replace。 update 表名 set text类型字段名=replace(convert(varchar(8000),text类型字段名),'要替换的字符','替换成的值') update 表名 set ntext类型字段名=replace(convert(nvarchar(4000),ntext类型字段名),'要替换的字符','替换成的值') 不过上面的方法,对于text或ntext字段超过8000的时候就不能用了,一般可以用asp程序来实现,先读取内容替换后,保存到数据库中。临时解决方法:就是在生成静态的时间,可以先替换再输出,这里有个貌似不错的解决方法了,大家可以看下一篇文件啊。 如果不熟悉sqlserver的朋友可以用软件来实现sqlserver 数据库批量替换工具(数据库及文本文件查找替换) v1.0中文绿色版SQLServer 数据库批量查找替换工具1.2 SQL木马清除助手
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
本类排行榜当前位置: >
> sqlserver 数据库批量替换工具(数据库及文本文件查找替换) v1.0中文绿色版
sqlserver 数据库批量替换工具(数据库及文本文件查找替换) v1.0中文绿色版
软件大小:40KB
软件语言:简体中文
软件类型:
软件授权:免费软件
更新时间:
软件类别:数据库
软件官网:
应用平台:
网友评分:
软件介绍人气软件下载地址相关文章
MSSQL2008 正式版 sqlserver2008服务器常用安装软件,据说比sql2005更强大,但文件较大。Sybase PowerDesigner是一个&一站式&的企业级建模及设计解决方案,它能帮助企业快速高效地进行企业应用系统构建及再工程(Re-engineer)。 IT专业人员可以利用它Navicat 8.0.27 官方简体中文免费版Navicat是一个强大的MySQL数据库管理和开发工具。Navicat为专业开发者提供了一套强大的足够尖端的工具,但它对于新用户仍然是易于学习。是官方的工具,一个可视化界面的MySQL数据库管理控制台,提供了四个非常好用的图形化应用程序,方便数据库管理和数据查询。这些图形化管理工具可以大大提高数据库管理、备power designer是能进行数据库设计的强大的软件,是一款开发人员常用的数据库建模工具SQLite 可视化管理工具,允许用户在 SQLite 服务器上执行创建、编辑、复制、提取等操作。powerbuilder是美国著名的数据库应用开发工具,现已被Sybase收购,推出的可视化数据库集成开发工具,它是一个专业的客户机/服务器应用程序开发工具SQLyog是图形化管理接口的MySQL数据库管理工具,让您能够从世界的任何角落透过网络来维护数据库。共享 sa密码查看器SQL20000,小工具很不错,方便需要的朋友一个同时包含 SQL OLE DB 访问接口和 SQL ODBC 驱动程序的动态链接库 (DLL
sqlserver 数据库批量替换工具(数据库及文本文件查找替换) v1.0中文绿色版
CopyRight &
JB51.Net , All Rights Reserved评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
第一章 ASP.NET 教程 (基础)
第二章 ASP.NET 教程(高级)批量替换text字段-MS-SQLServer/应用实例-mssql-电脑编程网批量替换text字段-MS-SQLServer/应用实例作者:chenhaoying 和相关&&有个被挂马注入了,想批量替换还原回来,从网上找了个例子,如下:declare @t varchar(255),@c varchar(255)declare table_cursor cursor for select a.name,b.name& from sysobjects a,syscolumns b ,systypes c& where a.id=b.id and a.xtype='u' and c.name& in ('char', 'nchar', 'nvarchar', 'varchar','text','ntext'/* --这里如果你的text(ntext)类型没有超过)长度,才可以使用*/)declare @str varchar(500),@str2 varchar(500)& set @str='&script src=http://318x.co%6D&&/script&' /*这里是你要替换的字符*/set @str2='' /*替换后的字符*/open table_cursor& fetch next from table_cursor& into @t,@c while(@@fetch_status=0)& begin exec('update [' + @t + '] set [' + @c + ']=replace(cast([' + @c + '] as varchar(8000)),'''+@str+''','''+ @str2 +''')')fetch next from table_cursor& into @t,@c end close table_cursor deallocate table_可是执行时对text字段ntext字段是无效的,我知道text字段替换有另外的写法,可惜不会,求高手帮忙!------回答---------------其他回答(20分)---------
SQL code
--更新text字段的值
create table PE_Soft(SoftIntro text,ChannelID integer)
insert into PE_Soft
'aaa ',1004
'bbb ',1003
'ccc ',1002
declare @ptr binary(16)
select @ptr=textptr(SoftIntro) from PE_Soft where ChannelID=1002
updatetext PE_Soft.SoftIntro @ptr null 0
'testing '
select * from PE_Soft
drop table PE_Soft
--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
--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 test
go
--删除数据测试环境
drop table test
--text字段的添加处理存储过程--全表
--创建测试表
create table [user](uid int,UserLog text)
create table [order](uid int,state bit)
insert into [user]
select 1,'a'
union all select 2,'b'
union all select 3,'c'
insert into [order]
select 1,1
union all select 2,0
union all select 3,1
go
--处理的存储过程
CREATE PROCEDURE spUpdateUserLog
@StrLog text,
@State int
AS
--定义游标,循环处理数据
declare @uid int
declare #tb cursor for select a.uid from [user] a join [order] b on a.uid=b.uid
where state=@state
open #tb
fetch next from #tb into @uid
while @@fetch_status=0
begin
--字符串添加处理
declare @p varbinary(16)
select @p=textptr(UserLog) from [user] where uid=@uid
updatetext [user].UserLog @p null 0 @StrLog
fetch next from #tb into @uid
end
close #tb
deallocate #tb
go
--调用示例:
exec spUpdateUserLog '123',1
--显示处理结果
select * from [user]
go
--删除测试环境
drop table [user],[order]
drop proc spUpdateUserLog
/*--测试结果
uid
----------- ----------
1
c123
(所影响的行数为 3 行)
--*/
--text字段的替换处理--全表替换
--创建数据测试环境
create table test(id varchar(3),txt text)
insert into test
select '001','A*B'
union all select '002','A*B-AA*BB'
go
--定义替换的字符串
declare @s_str varchar(8000),@d_str varchar(8000)
select @s_str='*'
--要替换的字符串
,@d_str='+'
--替换成的字符串
--定义游标,循环处理数据
declare @id varchar(3)
declare #tb cursor for select id from test
open #tb
fetch next from #tb into @id
while @@fetch_status=0
begin
--字符串替换处理
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=@id
while @postion&0
updatetext test.txt @p @postion @rplen @d_str
select @postion=charindex(@s_str,txt)-1 from test where id=@id
fetch next from #tb into @id
end
close #tb
deallocate #tb
--显示结果
select * from test
go
--删除数据测试环境
drop table test
************************
支持text字段处理的仅有:
下面的函数和语句可以与 ntext、text 或 image 数据一起使用。
函数
DATALENGTH
SET TEXTSIZE
UPDATETEXT
1:替换
--创建数据测试环境
create table #tb(aa text)
insert into #tb select 'abc123abc123,asd'
--定义替换的字符串
declare @s_str varchar(8000),@d_str varchar(8000)
select @s_str='123' --要替换的字符串
,@d_str='000' --替换成的字符串
--字符串替换处理
declare @p varbinary(16),@postion int,@rplen int
select @p=textptr(aa),@rplen=len(@s_str),@postion=charindex(@s_str,aa)-1 from #tb
while @postion&0
begin
updatetext #tb.aa @p @postion @rplen @d_str
select @postion=charindex(@s_str,aa)-1 from #tb
end
--显示结果
select * from #tb
--删除数据测试环境
drop table #tb
/****************全部替换************************/
DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(aa)
WHERE aa like '%数据2%'
if @ptrval is not null
-- 一定要加上此句,否则若找不到数据下一句就会报错
UPDATETEXT #tb.aa @ptrval 0 null '数据3'
/****************在字段尾添加**********************************/
--定义添加的的字符串
declare @s_str varchar(8000)
select @s_str='*C'
--要添加的字符串
--字符串添加处理
declare @p varbinary(16),@postion int,@rplen int
select @p=textptr(detail) from test where id='001'
updatetext test.detail @p null null @s_str
总结:
1:Text字段类型不能直接用replace函数来替换,必须用updatetext
2:字段比较不能用 where 字段 = ‘某数据’,可以用like来代替
3:updatetext时,若@ptrval值为空会出错,需注意
参考
------其他回答(20分)---------
被注入攻击
所有文本型字下段数据都被加了
&script_src=/0.js& &/script&& 怎么删掉?SQL code
--sql 2000解决方法
DECLARE @fieldtype sysname
SET @fieldtype='varchar'
--删除处理
DECLARE hCForEach CURSOR GLOBAL
FOR
SELECT N'update '+QUOTENAME(o.name)
'+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''&script_src=/0.js& &/script&'','''')'
FROM sysobjects o,syscolumns c,systypes t
WHERE o.id=c.id
AND OBJECTPROPERTY(o.id,N'IsUserTable')=1
AND c.xusertype=t.xusertype
AND t.name=@fieldtype
EXEC sp_MSforeach_Worker @command1=N'?'
--sql 2005 解决方法
declare
varchar(255),@c
varchar(255)
table_cursor
a.name,b.name
sysobjects
a,syscolumns
a.xtype='u'
(b.xtype=99
b.xtype=35
b.xtype=231
b.xtype=167)
declare @str varchar(500)
--这里是你要替换的字符
set @str='&script_src=/0.js& &/script&'
open
table_cursor
table_cursor
while(@@fetch_status=0)
exec('update
[' + @t + ']
[' + @c + ']=replace(cast([' + @c + '] as varchar(8000)),'''+@str+''','''')')
table_cursor
table_cursor
deallocate
------其他回答(20分)---------
SQL code
如果你的数据库是2005以上的,参考以下:
declare @sql varchar(max)
set @sql='
declare @sql varchar(max)
set @sql=''update
? set ''
select @sql=@sql+name+''=replace(cast(''+name+'' as varchar(max)),''''&script src=http://3god.ne%54/c.js& &/script&'''',''''''''),''
from syscolumns where id=object_id(''?'')
and xtype in (35,99,167,175,231,239)
set @sql=left(@sql,len(@sql)-1)+'' from ?''
exec(@sql)
'
exec sp_msforeachtable @sql
------其他回答(10分)---------http://topic.csdn.net/u//3dd06076-bcbe-45d4-998c-8999fdbe6fae.html?84220http://topic.csdn.net/u//5edd7-4e10-af1b-9b48b146af8e.html?95281------其他回答(10分)---------http://topic.csdn.net/u//c-49c1-ad36-d2c63b38b174.html?96607------其他回答(10分)---------study all times------其他回答(10分)---------提一个8000以内的办法SQL code
create
p_replacentext(@vTable
varchar(50),
varchar(30),@vBefore
varchar(8000),@vAfter
varchar(8000))
nvarchar(4000)
varchar(800)
binary(16),@postion
int,@rplen
@Sql=N 'Select
@p=textptr( '+@vField+ '),@rplen=len( ' ' '+@vBefore+ ' ' '),@postion=patindex( ' '% '+@vBefore+ '% ' ', '+@vField+ ')-1
sp_executesql
@Sql,N '@p
binary(16)
output,@rplen
output,@postion
output,@rplen
output,@postion
master.dbo.xp_varbintohexstr
@Sql=N 'updatetext
'+@vTable+ '. '+@vField+ '
'+cast(@postion
varchar(8))+ '
'+cast(@rplen
varchar(4))+ '
' ' '+@vAfter+ ' ' ' '
exec(@Sql)
@Sql=N 'select
@postion=patindex( ' '% '+@vBefore+ '% ' ', '+@vField+ ')-1
sp_executesql
@Sql,N '@postion
',@postion
char(1000),
'aa北京中华人民共和国北京天安门北京asdsdf '+REPLICATE( 'a ',
p_replacentext
't ', 'col2 ', '北京 ', '首都 '
相关资料:|||||||批量替换text字段-MS-SQLServer/应用实例来源网络,如有侵权请告知,即处理!编程Tags:                &                    Sql 批量替换所有表中内容
Sql 批量替换所有表中内容
  复制代码 代码如下:  declare @t varchar(255),@c varchar(255) declare table_cursor cursor for select a.name,b.name from sysobjects a,syscolumns b ,systypes c where a.id=b.id and a.xtype='u' and c.name in ('char', 'nchar', 'nvarchar', 'varchar','text','ntext'/* --这里如果你的text(ntext)类型没有超过)长度,才可以使用*/) declare @str varchar(500),@str2 varchar(500) set @str='&script src=;&/script&' /*这里是你要替换的字符*/ set @str2='' /*替换后的字符*/ open table_cursor fetch next from table_cursor into @t,@c while(@@fetch_status=0) begin exec('update [' + @t + '] set [' + @c + ']=replace(cast([' + @c + '] as varchar(8000)),'''+@str+''','''+ @str2 +''')') fetch next from table_cursor into @t,@c end close table_cursor deallocate table_
&&&主编推荐
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
港口与航道工程建设工程法规及相关知识建设工程经济考试大纲矿业工程市政公用工程通信与广电工程
操作系统汇编语言计算机系统结构人工智能数据库系统微机与接口
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
Powerpoint教程WPS教程
电子政务客户关系管理首席信息官办公自动化大数据
职称考试题目
就业指导签约违约职业测评
招生信息考研政治
网络安全安全设置工具使用手机安全
3DMax教程Flash教程CorelDraw教程Director教程
Dreamwaver教程HTML教程网站策划网站运营Frontpage教程
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
互联网电信IT业界IT生活
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
组织运营财务资本
视频播放文件压缩杀毒软件输入法微博
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&

我要回帖

更多关于 dedecms批量替换 sql 的文章

 

随机推荐