❶ update sql 两个关联的表
一、当用一个表中的数据来更新另一个表中的数据,T-SQL提供多种写法(下面列出了二种),但建议用第一种写法,虽然传统,但结构清晰。
并且要注意,当用一个表中的数据来更新另一个表中的数据时,二个表一定要有关联!
1.
update t1
set t1.c2 = t2.c2
fro m t2
where t1.c1 = t2.c1
2.
Update t1
set t1.c2 = t2.c2
fro m t1 inner join t2
on t1.c1 = t2.c1
二、FROM 子句中指定的表的别名不能作为 SET column_name 子句中被修改字段的限定符使用。
例如,下面的内容无效:
UPDATE titles
SET t.ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
若要使上例合法,请从列名中删除别名 t 或使用本身的表名。
1.
UPDATE titles
SET ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
2.
UPDATE titles
SET titles.ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
❷ 写SQL语句:更新关联表,有两个表A、B,以卡号为关联,将B中的姓名更新到A中
Update 表A Set 姓名=表B.姓名 where 表A.卡号=表B.卡号
❸ SQL Server中 两个不同的数据库中的两张表如何关联
1、首先就是创建几个没有任何关系的表,但是注意,你在将要作为外键表的表上必须使用与将要作为主键表的数据类型相同。
❹ sql server 如何同时更新两张有关系的表
可以使用事务,但是只有当两张表都被更新了才会执行成功,否则事务回滚.
例如:
begin tran --开始执行事务
update bb set moneys=moneys-@momeys where ID=@fromID -执行的第一个操作,转账出钱,减去转出的金额
update bb set moneys=moneys+@momeys where ID=@toID --执行第二个操作,接受转账的金额,增加
if @@error<>0 --判断如果两条语句有任何一条出现错误
begin rollback tran –开始执行事务的回滚,恢复的转账开始之前状态
return 0
end
go
❺ SQL Server数据库多表关联如何更新
一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新。而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据。我们先来讨论根据其他表数据更新你要更新的表
一、MS SQL Server 多表关联更新
sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来。虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就可以在update的表达式 中引用要更新的表以外的其它数据。
一般形式:
update A SET 字段1=B表字段表达式, 字段2=B表字段表达式 from B WHERE 逻辑表达式
例如:
UPDATE dbo.Table2
SET dbo.Table2.ColB = dbo.Table2.ColB + dbo.Table1.ColB
FROM dbo.Table2
INNER JOIN dbo.Table1
ON (dbo.Table2.ColA = dbo.Table1.ColA);
实际更新的操作是在要更新的表上进行的,而不是在from子句所形成的新的结果集上进行的
❻ sql server 2008 怎么做到,同时更新两个表,两个表有主键关联
如果是用SQL语句建表,如下:(假设要让a和c组合作为主码)
create table t1(
a int,
b varchar(20),
c int,
primary key(a,c)
)
如果用图形化界面做,按住ctrl键,然后选择a和c两个列,接着右键菜单选择“设置为主键”即可。
❼ sql update 两个表更新问题
你说的太笼统了
假设每个居民的机构代码都能从机构表中找到机构代码,
且对应的上级机构不会再有上级机构
用以下SQL就可以更新
UPDATEINHABITANTT1
SETT1.JGBM=
(SELECTT2.SJJGBM
FROMINSTITUTIONT2
WHERET2.JGBM=T1.JGBM)
有问题再追问
❽ sql可以两个表一起更新数据吗
如果两个表有关联的话是可以的,比如A表的id和b表的b_id外键关系就可以
update a left join b on a.id = b.b_id set a.name = '',b.name='' (where条件)
❾ SQL SERVER 2008 有两张表,需要将表A的一列数据 更新到表B,需要数据ID相对应,即通过主键关联两张表
SQL语句如下:
updatea
seta.pic_left=b.pic_left
from
PIC..T_Vehicle2a
innerjoinyzdb..T_Vehiclebona.id_vechile=b.id_vechile
❿ sql,两个表关联,根据B表更新A表
update A set id=B.id from A,B where A.name=B.name