在数据库B中执行下面SQL语句
UPDATE
表2
SET
text=
[库A][表1]text
FROM
[库A][表1],
表2
WHERE
[库A][表1]id
=
表2id
希望对你有帮助
在告诉大家如何替换数据内容之前,我建议大家先了解一下SQL Server数据库的数据存储类型:在使用iwms系统的过程中,我们会经常遇到数据内容的替换 *** 作。在告诉大家如何替换数据内容之前,我建议大家先了解一下SQLServer数据库的数据存储类型:SQLServer数据类型:以上是数据库的基础知识,是做网站的朋友都应该知道的内容(无论你使用什么cms),所以建议大家都耐心看一下。数据替换一般都发生在字符串数据字段中,除了ntext类型字段以外的其他字符串数据字段都可以使用以下的sql语句进行替换:update [swf_Upload] set [Dir] = replace([Dir],'200901/14','200901/15')update [swf_Content] set [Description] =replace([Description],'200901/14','200901/15')update [swf_Content_01] set [content] = replace(convert(varchar(4000), [content]),'200901/14','200901/15') UPDATE [数据表名] SET [字段名] = REPLACE([字段名],'老字符串','新字符串')比如,替换iwms文章数据表(iwms_news)中的标题字段(title)的部分内容,我们应该这么写:UPDATE [iwms_news] SET [title] = REPLACE([title],'老字符串','新字符串')上面的sql语句在iwms后台的sql执行里面可以直接执行,基本上可以搞定所有的替换 *** 作,但是由于ntext数据长度的原因,这一方法对ntext类型字段无效。那我们该用什么方法替换ntext类型字段的内容呢?方法有两种:一是类型转换,将ntext类型转换为varchar类型,然后再用replace。适合于单页内容最大长度<4000的文章。update [数据表名] set [字段名] = replace(convert(varchar(4000), [字段名]),'老字符串','新字符串')比如,替换iwms文章数据表(iwms_news)中的标题字段(content,ntext类型字段)的部分内容,我们应该这么写:update iwms_news set [content] = replace(convert(varchar(4000),[content]),'老字符串','新字符串')二是SQLServer存储过程declare @ptr varbinary(16)declare @artId intdeclare @Position int,@len intset @len = datalength('老字符串')declare wux_Cursor scroll Cursorforselect textptr([字段名]),[key字段名] from [数据表名]for read onlyopen wux_Cursorfetch next from wux_Cursor into @ptr,@artIdwhile @@fetch_status=0beginselect @Position=patindex('%老字符串%',[字段名]) from [数据表名] where [key字段名]=@artIdwhile @Position>0beginset @Position=@Position-1updatetext [数据表名][字段名] @ptr @Position @len '新字符串'select @Position=patindex('%老字符串%',[字段名]) from [数据表名] where [key字段名]=@artIdendfetch next from wux_Cursor into @ptr,@artIdendclose wux_cursordeallocate wux_cursorgo比如,替换iwms文章数据表(iwms_news)中的标题字段(content,ntext类型字段)的部分内容,我们应该这么写declare @ptr varbinary(16)declare @artId intdeclare @Position int,@len intset @len = datalength('老字符串')
我也遇到过这样的问题。sql server替换ntext字段,网上有很多存储过程,不过我试过,都有错误,不能执行,可能环境不一样吧。
我的解决办法是,自己写了一个程序,就是用datareader从数据库中一条一条读记录,如果记录中包含特定字符串,就把它替换掉然后更新会数据库。由于数据量大,可以定义一个int型变量,每5000条提示一下,可以知道更新进度。
听说用DataSet可以批量更新多条记录,这个没用过,不太熟悉,楼主觉得我的方法不行,可以找找DataSet的解决思路。
先设定好数据源<jsp:setDataSource/>
假设你的“监测时间”字段存在表 table1中
字段名字为“mykey”
<sql:query dataSource="你的数据源名字" var=“myValue”>
SELECT FORM table1
</sql:query>
<c:forEach items="myValue" var="rows">
<table>
<tr>
<td>rowsmykey</td>
</tr>
</table>
</c:forEach>
将<table>的格式换位你的就好了
以上就是关于SQL用数据库A中表1的数据替换数据库B中表2的数据全部的内容,包括:SQL用数据库A中表1的数据替换数据库B中表2的数据、如何替换SQL Server数据库内容、怎么用数据库批量替换掉网站内的字符呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)