怎么用SQL语句同步两个表中的字段值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用SQL语句同步两个表中的字段值?相关的知识,希望对你有一定的参考价值。
例:A表和B表都有字段C,让B表中的字段C和A表中的一样
是用update还是insert?
我用 uadate B set b.c=A.C 提示无法绑定由多个部分组成的标识符'A.C'
用 insert into B(C) select C from A 提示不能将值NULL插入列'code'。我把B表中C字段属性改成允许空值,还是不行。
如有两张表——A表和B表,创建触发器使当A表插入数据后B表也同步插入数据。其中B表插入数据的字段需要同A表中的字段相对应。
CREATE TRIGGER 触发器名称
ON A表
AFTER INSERT
AS BEGIN INSERT INTO
B表(B表字段1,B表字段2,B表字段3)
SELECT A表字段1,A表字段2,A表字段3
FROM INSERTED
END 参考技术A 需要将A表和B表通过某个或多个字段关联起来,再操作 参考技术B 首先你想在什么情况下让两个表的字段同步,是在更新的时候吗?追问
本来B中没有C字段,现在加入了C,要让B中的C字段和A中的C字段一样,相当于把值全部复制过来。
追答表B中有数据吗?
追问有的,但字段C里还没有数据
追答表B跟表A之间有没有建立主外键关系,两个表有没有标识列。
参考技术C Update b set b.c=a.c from b b ,a a where a.id=b.id追问都说了会提示 无法绑定由多个部分组成的标识符
追答我写的和你写的不一样吧。
追问哦,但提示是一样的
本回答被提问者采纳 参考技术D 加标识列,追问标识列?不懂啊
追答我要下班了,明天帮你啊
update 更新多个表 SQL
SQL中,有2个表A1、A2,A1表中有字段D1(主键,与表A2中主键E1关联)、D2,A2中有字段E1、E2,请问怎么用 一个UPDATE同时将A1、A2表中的D2、E2字段同时更新成1(默认值是0),请认真看完题再回答,谢谢
参考技术A update 好像是不能同时更新两个表的楼主想同时更新这两个表而采用单个更新是因为2个表的约束关系
其实还有一个办法
就是先把两个表的约束关系都停用了
然后用2条语句将2个表分别更新,更新完了以后再启用两个表的约束关系就可以了 参考技术B update 语句无法 同时 更新两个表;
可以 对2个表update 后
再统一提交追问
就是最后Commit? 没有同时更新么? 那组合情况怎么办? 我更新第一个表,但是更新第二个表需要第一个表修改字段以前的值组合查出来才能决定更新哪条记录的,我看网上有很多update同时更新多条记录,但都是用别的表更新一个表,并不是真正的同时更新多个表
追答没有同时更新多个表的语法。
可以用触发器,在update一个表的时候,同时 update另一个表。
update 和select 都可以同时操作多个表,为了方便可以在表后面加比如 a ,相当于变量一样。
mysql,sqlserver,oracle有效,其他数据库没试过追问
你确定实验过?我实验怎么报错,而且help中说明了update后不能跟2个表的,什么情况?
追答你的什么数据库?
追问SQL2008
追答真不好意思sqlserver还真不行,update 多表只在mysql上试过,可以。sqlserver支持select多表,我还以为update也支持。
追问哦~没关系,谢谢你了
参考技术D 一个UPDATE不可能做到更新两个表可以将一个表的内容先提取到临时表,先更新此表,再用临时表内容作条件更新另一个表 第5个回答 2013-07-23 用级联更新。
以上是关于怎么用SQL语句同步两个表中的字段值?的主要内容,如果未能解决你的问题,请参考以下文章