17xie > SQL Server 2005高级程序设计 > 2.3 通过UPDATE语句更改现有的数据
背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-105372.html    注册17xie 一起来写书 实现您的出书梦想!

2.3  通过UPDATE语句更改现有的数据

像大多数其他SQL语句一样,UPDATE语句的作用就如它听上去那样——更新现有的数据。虽然看起来很相似,但它的结构与SELECT有些许不同。来看UPDATE的语法:

UPDATE <表名>

SET <列> = <值> [,<列> = <值>]

[FROM <一个或多个源表>]

[WHERE <约束条件>]

UPDATE语句可以从多个表中生成,但只影响一个表。这是什么意思呢?这是说,我们能够从任意数量的不同表中构建条件或获取数据值(通过联结)。但是,一次只能有一个表是更新操作的目标对象。现在,来看一个简单的更新。

我们就从老朋友Jo Brown开始吧(希望你还记得在本章的前面讨论联结时提及过她)。最近Jo Brown似乎结婚了,我们需要确认她的数据是正确的。下面运行一个查询以查看一行数据:

查询返回的结果如下:

下面,将MaritalStatus值更新为更准确的“M”:

像运行INSERT语句一样,不会从SQL Server中得到太多的结果信息:

现在,再运行一次SELECT语句,将看到值确实发生了改变:

注意,可以修改不止一列,只需添加一个逗号,再加上另一个列的表达式即可。例如,下面的语句在修改婚姻状况的同时还提升了Jo的职位:

如果愿意,也可以在SET子句中使用表达式,而不是像前面那样使用显式的值。例如,假设想要给Jo增加20%的休假时间(毕竟,她刚获得了提升!),可以使用如下的语句:

可以看出,一条UPDATE语句就相当的强大。即便如此,这还只是开始。在后面的章节中,将看到更高级的更新。

虽然SQL Server允许更新几乎所有的列(有少数列不能更新,如时间戳),但是,在主键列的更新上要特别小心。更新主键列很容易导致“孤立”其他的数据(该数据到正在修改的数据上有一个引用)。


字数:854    最后更新:7个月以前 [04-23 15:29]happyskynet 修改
本页编辑者:happyskynet  
[前一页]:2.2 用INSERT语句添加…  [后一页]:2.4 DELETE语句
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号