sql server 实用干货 快速上手(1)

替换某列的一个字符串

SQLServer如何批量替换某一列中的某个字符串

update [HelloCode].[dbo].[AD] 
set [Contents]=REPLACE([Contents],'http://www.mylanqiu.com/','mylanqiu') 
where Contents like '%www.mylanqiu.com%'

Replace函数的用法:

Replace(数据库的列名,‘要被替换掉的字符串’,‘要用于替换的字符串’)

mysql、sqlserver关联表批量修改

mysql、sqlserver关联表批量修改
一、mysql关联表批量修改

UPDATE sp_sys_dictionaries_category a   #根据对应id,把b.username的值赋给a.username
LEFT JOIN sp_sys_dictionaries b ON b.cid = a.id
SET a.username = b.username

二、sqlserver关联表批量修改

UPDATE a SET a.FLONGYARN = b.ORGID    --根据对应id,把b.ORGID的值赋给a.FLONGYARN
FROM ST_LongYarn a
LEFT JOIN ST_InspectionRecordOfCaloco b ON b.fid = a.fid
 1 --方式1
 2 UPDATE a SET WtNo=b.NO
 3 from WT_Task a
 4 INNER JOIN WT_BasicInformation b ON a.WtId=b.ID;
 5 
 6 --方式2
 7 UPDATE a SET a.WtNo=b.NO
 8 FROM WT_Task a,WT_BasicInformation b
 9 WHERE a.WtId=b.ID;

上面这些方法在我的1千万行的表里运行非常慢,20分钟了还没运行完。

bulk insert 可以插入指定的列?

表:
在这里插入图片描述
ID是自增列
在这里插入图片描述
在这里插入图片描述
使用语句:

INSERT INTO Test ( Number ) SELECT
* 
FROM
	OPENROWSET ( BULK 'E:\Cnd works\移动业务_01\报表汇总\月报\清单\data1.txt', 
	FORMATFILE = 'E:\Cnd works\移动业务_01\报表汇总\月报\清单\format01.xml', FIRSTROW = 2 ) AS T;
数据源
在这里插入图片描述在这里插入图片描述

format01.xml文件内容

<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="21"/>
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="1"/>
  <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="1"/>
  <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="1"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="2" NAME="Number" xsi:type="SQLVARYCHAR"/>
 </ROW>
</BCPFORMAT>

向目标表格成功插入了第2列:“列2”

用时
在这里插入图片描述在这里插入图片描述

下面尝试导入千万行的数据:
在这里插入图片描述
只需143s,可以媲美bulk insert的速度了~

而且这个操作方法是追加形式的运行的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值