快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

将列更新从一个表传递到另一个表

问:怎样在一个UPDATE语句中使用表B的三个列更新表A中的三个列?

答:对这个问题,您可以使用强盛的关系代数。本页中的代码说明了如何组合使用FROM子句和JOIN操作,以达到用其他表中数据更新指定列的目的。在设计关系表达式时,您需要决定是否需要单一行匹配多个行(一对多关系),或者需要多个行匹配被联接表中的单一行以更新所有行(多对一关系)。

在一对多关系中,SQL Server始终使用它找到的最后一行更新数据。但是,您无法控制最后一行所在的位置。在多处理器的计算机上,查询可能是同步进行的,一样的查询最后一行的位置可能会不同。因此,Microsoft建议尽量不要使用一对多关系。

假如待更新的表与FROM子句中的表一样,并且FROM子句只包含对该表的一个引用,别名可能未被指定。假如待更新的表在FROM子句中出现了多次,只有该表的一个引用可以省略表的别名,对该表的所有其他引用必须包含一个表别名。

USE tempdb
GO
CREATE TABLE #t1 (c1 int NOT NULL, c2 char(5), c3 char(5),
c4 char(5))
GO
CREATE TABLE #t2 (c1 int NOT NULL, c2 char(5), c3 char(5),
c4 char(5))
GO


--数据赋值
INSERT #t1 values (1,\\\'hello\\\',\\\'there\\\',\\\'fred\\\')
INSERT #t2 values (1,\\\'how\\\',\\\'are\\\',\\\'you?\\\')


--更新数据
UPDATE #t1 SET #t1.c2 = #t2.c2, #t1.c3 = #t2.c3,
#t1.c4 = #t2.c4
FROM #t2
WHERE #t1.c1 = #t2.c1


--检查结果
SELECT * FROM #t1
返回类别: 教程
上一教程: 小议主子表INT自增主键插入记录的方式
下一教程: 使用MYSQL ODBC进行MYSQL和MSSQL的数据转变

您可以阅读与"将列更新从一个表传递到另一个表"相关的教程:
· 将列更新从一个表传递到另一个表
· 从SQL中的一个表中导出HTML文件表格
· 从SQL中的一个表中导出HTML文件表格
· 将一个更新划分为几个批次
· 从一个MYSQL的例子来学习查询语句
    微笑服务 优质保证 索取样品