以前update用的不少,但都是简单的单表操作,没有在意,最近查阅多表关联更新及更新top n,发现update还真灵活,记录如下(在mssqlserver2008r2下测试通过):

1单表操作 

update table1 set col1=val[,col2=val2...]

[where 条件表达式]

2多表关联操作

1)update 表名 set 列名 from 表1,表2 where 条件,此法源表(table1)不能用as别名,长表名很麻烦,如下:

update table1 set col1=table2.col1

from table2  where table1.pkey=table2.pkey

2)使用别名表更新,简洁!

update t1 set col1=t2.col1

from table1 t1,table2 t2  where t1.pkey=t2.pkey

3)更新来自查询表

update t1 set col1=val

from (select * from table1 [where 条件表达式] )t1

应用:更新前n条

update t1 set col1=val

from (select top 10 * from table1 [where 条件表达式] order by 列n )t1

另外,查询可以是本库中的表,也可以是外库表,如dblink连接的表或openrowset等

4)使用cte

;with t as(select * from table1  [where 条件表达式])

update t set  col1=val

sql update小结的更多相关文章

  1. xss、SQL测试用例小结

    xss测试用例小结: <script>alert("跨站")</script> (最常用)<img scr=javascript:alert(&quo ...

  2. 如何判断一条sql(update,delete)语句是否执行成功

    如何判断一条sql(update,delete)语句是否执行成功 catch  (SQLException    e)  {  }  catch不到错误应该就成功了.   ============== ...

  3. sql update 触发器 可获得被update的行的信息

    类型:转载   sql update 触发器 可获得被update的行的信息,需要的朋友可以参考下. 复制代码 代码如下: create trigger TgName on tb for update ...

  4. SQL update select

    SQL update select语句 最常用的update语法是: UPDATE TABLE_NAME SET column_name1 = VALUE WHRER column_name2 = V ...

  5. SQL UPDATE with INNER JOIN

    mysql - SQL UPDATE with INNER JOIN - Stack Overflowhttps://stackoverflow.com/questions/14491042/sql- ...

  6. SQL Update 语句详解

    SQL Update 语句详解   Update 语句 Update 语句用于修改表中的数据. 语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 Person: L ...

  7. 170823、SQL Update多表联合更新的方法

    SQL Update多表联合更新的方法 (1) sqlite 多表更新方法 update t1 set col1=t2.col1 from table1 t1 inner join table2 t2 ...

  8. SQL update select语句

    SQL update select语句 最常用的update语法是:UPDATE <table_name>SET <column_name1> = <value>, ...

  9. 关于My Sql update语句不能用子查询的解决办法

    在使用My Sql数据库语法操作update时,第一时间想到的是一下写法: UPDATE purchase_request_detail SET convert_to_voucher_id=, con ...

随机推荐

  1. linux定时执行

    /root/crontab-conf文件为root用户定时执行计划文件      命令:crontab -l 说明:列出定时执行的计划列表   命令:crontab -e 说明:编辑定时执行的计划文件 ...

  2. java 短信发送例子 tdy

    import java.io.IOException; import java.util.logging.Level;import java.util.logging.Logger;import or ...

  3. V - stl 的 优先队列 Ⅱ

    Description Because of the wrong status of the bicycle, Sempr begin to walk east to west every morni ...

  4. [转载]浅析Windows安全相关的一些概念

    Session 我们平常所说的Session是指一次终端登录, 这里的终端登录是指要有自己的显示器和鼠标键盘等, 它包括本地登录和远程登录.在XP时代每次终端登录才会创建一个Session,但是在Vi ...

  5. GDAL显示线性shp文件

    http://pan.baidu.com/s/1qWIDphU  (工程文件在vs2008中编写) 1.使用到的技术 GDAL:读取矢量数据 GDI:    绘制矢量数据 2.详细解释 GDI绘图: ...

  6. Haproxy+PXC实现负载均衡

    软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第 三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载.HA ...

  7. PHP多种序列化/反序列化的方法 (转载)

    1. serialize和unserialize函数 这两个是序列化和反序列化PHP中数据的常用函数. <?php $a = array('a' => 'Apple' ,'b' => ...

  8. 禁止Chrome浏览器缓存的方法

    web开发的人经常chrome和firefox作为开发调试工具,有些时候需要禁止chrome浏览器缓存,最近也用到禁止缓存,以下介绍几种禁止chrome浏览器缓存的方法作为记录. HTML: < ...

  9. python学习day9

    目录 一.队列 二.生产者消费者模型 三.协程 四.select\poll\epoll 五.paramiko 六.mysql API调用 一.队列(queue) 队列分以下三种: class queu ...

  10. OneNote Count

    用OneNote的时候,某个分区的笔记多的话,想数一下一共有多少笔记是个麻烦的活儿. OneNote没有自带这功能 于是写了个C#的小程序实现这功能 https://github.com/02xiao ...