我要投稿
  • 您当前的位置:365bet官方 -> 技术教程 -> 数据库教程 -> SQL server教程 -> 教程内容
  • [ 收藏本页教程 ]
  • 将列更新从一个表传递到另一个表SQL server]教程

    教程作者:佚名    教程来源:不详   教程栏目:SQL server教程    收藏本页
     

    问:怎样在一个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

    —Microsoft SQL Server开发团队

     
    我要投稿   -   广告合作   -   关于本站   -   友情连接   -   网站地图   -   联系我们   -   版权声明   -   设为首页   -   加入收藏   -   网站留言
    Copyright © 2009 - 20012 www.www.ct131.com All Rights Reserved.365bet官方 版权所有