|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使用DBaaS能让收入损失从其他业务上得到弥补,如软件更新和硬件管理。也许决定走DBaaS之路的客户可能会跳过解决方案提供商,尽管这个决策看起来有点短视。问:如何在一个UPDATE语句中利用表B的三个列更新表A中的三个列?
答:对这个成绩,您可使用壮大的干系代数。本页中的代码申明了怎样组合利用FROM子句和JOIN操纵,以到达用其他表中数据更新指定列的目标。在计划干系表达式时,您必要决意是不是必要单一行婚配多个行(一对多干系),大概必要多个行婚配被连接表中的单一行以更新一切行(多对一干系)。
在一对多干系中,SQLServer一直利用它找到的最初一行更新数据。可是,您没法把持最初一行地点的地位。在多处置器的盘算机上,查询多是同步举行的,不异的查询最初一行的地位大概会分歧。因而,Microsoft倡议只管不要利用一对多干系。
假如待更新的表与FROM子句中的表不异,而且FROM子句只包括对该表的一个援用,别号大概未被指定。假如待更新的表在FROM子句中呈现了屡次,只要该表的一个援用能够省略表的别号,对该表的一切其他援用必需包括一个表别号。
USEtempdb
GO
CREATETABLE#t1(c1intNOTNULL,c2char(5),c3char(5),
c4char(5))
GO
CREATETABLE#t2(c1intNOTNULL,c2char(5),c3char(5),
c4char(5))
GO
--数据赋值
INSERT#t1values(1,hello,there,fred)
INSERT#t2values(1,how,are,you?)
--更新数据
UPDATE#t1SET#t1.c2=#t2.c2,#t1.c3=#t2.c3,
#t1.c4=#t2.c4
FROM#t2
WHERE#t1.c1=#t2.c1
--反省了局
SELECT*FROM#t1
―MicrosoftSQLServer开辟团队
在我们工作的过程中,经常能听到很多不使用MySQL的理由,虽然其中有一些是对MySQL的误解,不过同样也有一些是合情合理的。 |
|