SQL数据库中的多表更新及注意事项(2)_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

SQL数据库中的多表更新及注意事项(2)

作者:黑客防线网安MYSQL维护基地 来源:黑客防线网安MYSQL维护基地 浏览次数:0

本篇关键词:SQL数据库
黑客防线网安网讯:示例2、示例4和示例7的用法都不严谨,缺少条件将导致无可挽回的损失正确的用法应该为示例3、5和8 请仔细对比。以上示例都是在原始数据基础上进行的,每个示例用的原始数据都相同。

    nbsp;   FROM a c                   WHERE  c.c4 <> 0);

4 Rows updated in 0 seconds

select * from a; C1 C2 C4 ---------- ---------- 9  a1  0 9  a2  2 9  a3  3 9  a8  4

## 表自己对自己更新 示例5 UPDATE a d    SET (d.c1) = (SELECT SUM(c.c4)                    FROM a c                   WHERE  c.c4 <> 0)  WHERE d.c4 = 0;

1 Rows updated in 0 seconds

select * from a; C1 C2 C4 ---------- ---------- 9  a1  0 2  a2  2 3  a3  3 8  a8  4

## 表更新表 示例6 UPDATE    A SET A.c2 =B.c3 from A ,B where A.c1=B.c1;

ORA-00933:SQL命令未正确结束

## 表更新表 示例7 update a set a.c2 = (select b.c3               from b              where a.c1=b.c1);

4 Rows updated in 0 seconds

select * from a; C1 C2 C4 ---------- ---------- 1  b1  0 2  b2  2 3  b3  3 8         4

## 表更新表 示例8 update a set a.c2 = (select b.c3               from b              where a.c1=b.c1) where exists (select 1 from b where a.c1=b.c1);

3 Rows updated in 0 seconds

select * from a; C1 C2 C4 ---------- ---------- 1  b1  0 2  b2  2 3  b3  3 8  a8  4

分析与说明: 1、SQL Server和Oracle的update语法有所区别共同点1:update后只能跟一个表共同点2:SQL Server和Oracle的update语法都可以用如下方式实现多表更新 UPDATE updatedtable SET (col_name1[,col_name2...])= (SELECT col_name1,[,col_name2...] FROM srctable [WHERE where_definition])

不同点:SQL Server的update语句中from后可跟多个表Oracle则不支持该用法

2、示例2、示例4和示例7的用法都不严谨缺少条件将导致无可挽回的损失正确的用法应该为示例3、5和8 请仔细对比以上示例都是在原始数据基础上进行的,每个示例用的原始数据都相同

 

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-8913-1.html
网站维护教程更新时间:2012-03-20 05:46:17  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer