加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver replace函数 批量替换数据库中指定字段内指定字符串参

发布时间:2020-12-12 13:21:09 所属栏目:MsSql教程 来源:网络整理
导读:SQL Server有 replace函数,可以直接使用;Access数据库的replace函数只能在Access环境下用,不能用在Jet SQL中,所以对ASP没用,在ASP中调用该函数会提示错误. 语法? REPLACE ( 'string_e-xpression1','string_e-xpression2','string_e-xpression3' )? 参数

SQL Server有 replace函数,可以直接使用;Access数据库的replace函数只能在Access环境下用,不能用在Jet SQL中,所以对ASP没用,在ASP中调用该函数会提示错误.

语法?
REPLACE ( 'string_e-xpression1','string_e-xpression2','string_e-xpression3' )?

参数说明?
'string_e-xpression1'?
待搜索的字符串表达式。string_e-xpression1 可以是字符数据或二进制数据。?
'string_e-xpression2'?
待查找的字符串表达式。string_e-xpression2 可以是字符数据或二进制数据。?
'string_e-xpression3'?
替换用的字符串表达式。string_e-xpression3 可以是字符数据或二进制数据。?

通俗理解即格式为:?
Update 表名 SET 要替换的列=REPLACE(要替换的列,被替换的字符,替换后的字符)?
示例SQL语句:?
Update tableName SET columeName = REPLACE(columeName,'a','b')?
但是值得注意的一点是,SQL Server有 replace函数,可以直接使用;Access数据库的replace函数只能在Access环境下用,不能用在Jet SQL中,所以对ASP没用,在ASP中调用该函数会提示错误:表达式中 'REPLACE' 函数未定义。在Asp中可以写一个函数实现该功能。?
示例函数:?

复制代码代码如下:
function replace(title)?
{?
replace(title,'aaa','bbbb')?
return(title)?
}?
bbb=replace(title)?
update ..... set title='"&bbb&"'?

ASP+access批量替换指定字符参考代码:?
复制代码代码如下:
<%?
Set Conn = Server.CreateObject("ADODB.Connection")?
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("数据库名.mdb")?
Set rs = Server.Createobject("ADODB.Recordset")?
sql="Select * from [表名]"?
rs.open sql,conn,1,3?
while not rs.eof?
rs("字段名")=replace(rs("字段名"),"被替换的字符","替换为的字符")?
rs.update?
rs.movenext?
wend?
rs.close?
set rs=nothing?
conn.close?
set conn=nothing?
%>?

需要注意的是:SQL中函数 replace 的参数 1 的数据类型 ntext 无效。找了半天找到了解决办法:?

因为ntext需要转化下?
用如下语句即可解决:?

复制代码代码如下: UPDATE 表 SET 字段=REPLACE(cast(字段 AS varchar(8000)),'被替换的内容','将要替换成的内容')?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读