SQL数据库中如何从A表自动更新数据到B表?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL数据库中如何从A表自动更新数据到B表?相关的知识,希望对你有一定的参考价值。
假设有两张表,A表中有销售订单号,销售日期,货品名称,规格,型号,数量,销售单价,销售金额,审核人 字段,B表有订单号,销售日期,货品名称,规格,型号,数量,销售单价,销售金额,订单是否下达 字段, 希望当A表有新插入数据时并且审核人不为空时,自动更新到B表,当A表审核人为空时,自动删除B表中对应的数据,是如果B表中订但单是否下达标志为Y时,则不删除,当B表中订单是否下达标志为空时,则删除。
参考技术A SQL不能做这样的逻辑判断吧,应该使用java语言或者其他语言来控制判断吧,设置一下多表关系,然后在后台读出做判断,在通过使用hibernate关联关系,把表设成2个关联的对象。。。当你判断是需要增加的时候,把两个对象互相加到对方的对象中就可以(要注意的是在对象类:表中,要设定对方对象的属性),不知道能否给你带来有用的信息,望采纳。 参考技术B 写一个insert触发器在A表上自己根据想要的条件应该懂一点的就应该能写出来
insert触发器在你插入数据到A表的时候,你的数据在系统默认的inserted表中存着,你可以在这里面找条件 参考技术C 要实现两个表之间的数据的自动更新,可以采用触发器来实现,触发器的实现方法:
1、A表有数据更新的时候自动更新B表:
create or replace trigger tg after update on A for each row
begin
update B set xx=xx where b.aid = a.id;
end;
/
2、A表插入数据时,B表更新数据:
create or replace trigger tgg after insert on A for each row
begin
insert B values(xxxx);
end;
/
如果不需要每条数据都跟新,只需要在每次A更新的时候更新B,可以将后面的for each row去掉。 参考技术D 写个触发器trigger 第5个回答 推荐于2017-11-26 使用触发器
create trigger 触发器名称
on A
as
begin
declare @审核人 varchar(100)
select @审核人 = 审核人 from inserted
if @审核人 <> null
insert B ( 列名全写出来 )
else
delete B where 条件 and 标志 <> 'Y'
end追问
如果我只是从A表中选择几列来进行插入到B表,是否要写对应插入到B的哪几列的?
追答插入的话不用写对应到表B的哪几列的
本回答被提问者采纳如何使用 Power BI 数据流中的实体自动更新 SQL 数据库表?
【中文标题】如何使用 Power BI 数据流中的实体自动更新 SQL 数据库表?【英文标题】:how to auto update an SQL database table with entities from Power BI Dataflow? 【发布时间】:2020-06-25 22:40:34 【问题描述】:是否有一个步骤过程可以使用从不同数据源创建的实体从现有 Power BI 数据流自动更新 Azure sql 表。换句话说,使用 Power BI 数据流作为 ETL 工具,从一个 Azure sql 表更新到另一个。对实现这一目标的步骤过程的反馈表示赞赏。
【问题讨论】:
【参考方案1】:这对于数据流是不可能的。它们只是从源读取然后将 Power BI 连接到它们的 ETL 工具。您不能使用它们读取数据库表,然后将其输出回另一个数据库表。您将需要 Azure 数据工厂之类的东西来移动和/或协调数据库中的数据移动和存储过程的执行。
【讨论】:
以上是关于SQL数据库中如何从A表自动更新数据到B表?的主要内容,如果未能解决你的问题,请参考以下文章
SQL:如何将一个表中某个字段的值全部更新到另外一个表相应的字段
从 SQL Server DB 更新单独工作表中的数据后自动刷新 Excel 2007 数据透视表