【问题标题】:UPDATE one table based on values in another table根据另一张表中的值更新一张表
【发布时间】:2013-11-08 20:05:49
【问题描述】:

我有两个表,表 1 有三个字段 (a1,a2,a3),表 2 有三个字段 (b1,b2,b3) 我想在 a1=b1 时根据表二更新表一。这是 Microsoft Access 中的文章,但我想在 Microsoft Access 项目 Sql server 2005 中作为后端。

UPDATE  t1
SET  a1 = t2.b1, a2 = t2.b2, a3 = t2.b3
where a1=b1

【问题讨论】:

    标签: sql-server sql-server-2005 ms-access


    【解决方案1】:

    INNER JOIN 表格。那么您就不需要SET t1.a1=t2.b1,因为根据连接条件,它们已经相等。所以只需SET 其他两个字段值...

    UPDATE t1 INNER JOIN t2
    ON t1.a1=t2.b1
    SET t1.a2 = t2.b2, t1.a3 = t2.b3
    

    请注意,此建议是 Access SQL,无论 t1t2 是本机 Access 表、指向 SQL Server 表的链接还是这两种类型的混合,都应该在 MS Access 中工作。

    【讨论】:

      【解决方案2】:

      为 SQL Server 尝试以下操作:

      UPDATE t1 
         SET a1 = t2.b1, a2 = t2.b2, a3 = t2.b3
      FROM t1
         INNER JOIN t2 ON t1.a1 = t2.b1
      

      【讨论】:

      • create PROCEDURE [dbo].[t122] AS BEGIN UPDATE t1 SET a2 = t2.b2, a3 = t2.b3,a1 = t2.b1 FROM t1 inner join t2 on t1.a1=t2 .b1 其中 a1 = t2.b1 结束
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多