首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

3.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允许更新几乎所有的列(有少数列不能更新,如时间戳),但是,在主键列的更新上要特别小心。更新主键列很容易导致“孤立”其他的数据(该数据到正在修改的数据上有一个引用)。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论