批量更新关联表的数据
2011-06-10 14:29
381 查看
刚好用到批量更新关联表的数据,查到的方法如下:
update shougeinfo
set shougeinfo.canton_id=B.[ID] from CANTON B
where substring(polt_id,1,charindex('#',polt_id)-1)=B.[NAME]
原型:
update A
set A.qcye=B.qcye
from B
where A.kmdm=B.kmdm
and A.fmonth=B.fmonth
and A.fmonth=0
几个批量update的范例,留着以后看:
NO.1:
UPDATE Table1 AS t1
SET (Field1,Field2) = (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE t2.Field24 >= ''
AND t1.fId = t4.fId);
NO.2:
UPDATE t1
SET Field1 = Field21, Field2 = Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId);
NO.3:
UPDATE Table1 t1
SET (Field1,Field2) = (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId))
WHERE EXISTS (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId));
NO.4:
UPDATE Table1 AS t1
SET (Field1,Field2) = (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId))
WHERE EXISTS (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId));
update shougeinfo
set shougeinfo.canton_id=B.[ID] from CANTON B
where substring(polt_id,1,charindex('#',polt_id)-1)=B.[NAME]
原型:
update A
set A.qcye=B.qcye
from B
where A.kmdm=B.kmdm
and A.fmonth=B.fmonth
and A.fmonth=0
几个批量update的范例,留着以后看:
NO.1:
UPDATE Table1 AS t1
SET (Field1,Field2) = (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE t2.Field24 >= ''
AND t1.fId = t4.fId);
NO.2:
UPDATE t1
SET Field1 = Field21, Field2 = Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId);
NO.3:
UPDATE Table1 t1
SET (Field1,Field2) = (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId))
WHERE EXISTS (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId));
NO.4:
UPDATE Table1 AS t1
SET (Field1,Field2) = (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId))
WHERE EXISTS (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId));
相关文章推荐
- SQL中两个关联表批量更新数据的方法
- 批量关联更新数据
- update关联其他表批量更新数据-跨数据库-跨服务器Update时关联表条件更新
- SQL脚本实现两张关联数据表之间批量更新UPDATE
- orcale 批量同时几个表关联,更新数据优化
- SQL中两个关联表批量更新数据的方法
- update关联其他表批量更新数据2
- update关联其他表批量更新数据
- SQL中两个关联表批量更新数据的方法
- Oracle两张表关联批量更新其中一张表的数据
- Sql语句批量更新数据(多表关联)
- SQL中两个关联表批量更新数据的方法
- 一个简单的批量更新oracle 数据库中 最近的服务商名称的数据
- 批量更新数据库表字段值四步走
- Neo4j 第五篇:批量更新数据
- mysql 根据select内容批量更新数据
- 两个关联表如何更新其中一个表的数据?
- 批量更新具有数千属性列的数据表的记录信息(SQL Server 2005)
- mysql 批量更新临时表中的数据
- Mysql游标使用 批量插入或更新数据