替换某列的一个字符串
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的速度了~
而且这个操作方法是追加形式的运行的。