日期:2014-05-18  浏览次数:20464 次

好吧,问一个具体一点的问题。
有A,B两张表。
当我向A表中插入或修改数据的时候,希望B表中对应的一条数据中b1列的int型数据+1。 具体改如何操作。

使用触发器吗? 还是存储过程?  


如果我还希望这个+1操作可以在代码中调用呢?

------解决方案--------------------
SQL code
Create trigger tr_A on A
after update,insert
as
update B set b1=b1+1
---條件樓主自定義

------解决方案--------------------
SQL code
Create trigger tr_A on A
for update,insert
as
update B set b1=b1+1

------解决方案--------------------
SQL code
create trigger my_trig on A for insert ,update
as
  update b set b1 = b1 + 1 where 关键字 = (select 关键字 from inserted)
go

------解决方案--------------------
探讨
check约束又是什么东西。

但是触发器不是不能通过底层代码调用啊。
那我要+1操作的时候 就直接写个update语句吗?


如果我在底层代码中用sql语句来完成这个操作和使用数据库的触发器有什么不同,各有什么优缺点呢。

------解决方案--------------------
SQL code
create trigger my_trig on A for insert ,update
as
  update b set b1 = b1 + 1 where 关键字 = (select 关键字 from inserted)
go