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

北三沫沫

北三沫沫

2016-01-29 16:19

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

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/)

答:对这个问题,您可以使用强大的关系代数。本页中的代码说明了如何组合使用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开发团队

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/) 
展开更多 50%)
分享

猜你喜欢

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

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

将count(*)值写入另一个表中的方法

编程语言 网络编程
将count(*)值写入另一个表中的方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

从一个程序中生成另一个程序(资源法)

编程语言 网络编程
从一个程序中生成另一个程序(资源法)

MySQL下将一个表的数据插入到另外一个表的实现语句

编程语言 网络编程
MySQL下将一个表的数据插入到另外一个表的实现语句

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

word2007将一个形状更改为另一个形状

word
word2007将一个形状更改为另一个形状

该行已经属于另一个表 的解决方法

编程语言 网络编程
该行已经属于另一个表 的解决方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

宽带问题不求人 ADSL网络故障解决

宽带问题不求人 ADSL网络故障解决

NGC《塞尔达传说:时之笛》图文流程攻略

NGC《塞尔达传说:时之笛》图文流程攻略
下拉加载更多内容 ↓