我有一个银行分值为两个表accountmaster
和transactionmaster
。查找大于指定交易金额的帐户
Accountmaster
有列:
accid(pk)
accname
bal
branch
Transactionmaster
列:
Tnumber(pk)
dot
txnAmt
transactiontype
accid(fk)
branch(fk)
我想找到低于不使用的INSTEAD OF触发器。
每当事务是由账户持有由(事务类型的沉积物,撤回)它应该反映在accountmaster表的平衡。
无论何时账户持有人进行> 50000(提取或存款)交易,交易详情将被插入到新表'hightransaction'中,并删除transactionmaster表中的特定交易。
我试过类似的东西,但在结果中只显示列名,没有值。
首先我复制transactionmaster成newtable的hightransaction
select *
into hightransaction
from transactionmaster
where 1 = 2
然后我创建了一个触发器
create trigger [dbo].[transaction2]
on transactionmaster
for insert
as
declare @transtype nvarchar(10);
select @transtype = [TXNTYPE]
from inserted
if (select txnamt from inserted) > 75000
begin
insert into [dbo].[hightransactionmaster3]
select
dot, txntype, chqnum, chqdate, txnamt,
acid, brid, userid
from
inserted
end
else
begin
insert into [dbo].[TRANSACTIONMASTER]
select
dot, txntype, chqnum, chqdate, txnamt,
acid, brid, userid
from
inserted
end
,我试图执行
select * from hightransaction
的输出是仅列名和没有价值。
我不认为你需要在数据库中的任何地方存储天平,在'Transactionmaster'上创建一个'View',它可以在查询时动态地计算余额。对于你的第二个要求,你需要一个存储过程。如果你确实需要存储余额,那么一个存储过程应该能够为你做所有事情。 –
我不知道第二个可能没有触发器,除非你的意思是修改你现在插入的任何程序。 – ZLK