您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“sql中觸發器如何實現庫存功能”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“sql中觸發器如何實現庫存功能”這篇文章吧。
表1、入庫表 列:入庫單號 零件號 入庫數量 表2、出庫表 列:出庫單號 零件號 出庫數量 表3:零件信息表 列:零件號`````` 庫存數量 我想實現每一次的入庫時,"零件信息表"里的"庫存數量"要加上"入庫數量",出庫時,”庫存數量“要減去”出庫數量“,就是實現更新庫存應該怎么做?寫觸發器嗎,觸發器該怎么寫?還是有什么更好的方法,請高手幫助我,最好有詳細代碼,謝謝!
最佳答案
一般來說庫存操作單據和庫存結余的聯系都是通過客戶端軟件實現的,就是在入庫單的審核操作按鈕處加入SQL代碼,如果你的不是這樣,也可以通過觸發器來實現,但是完善的流程應該包括在插入、修改和刪除時都保證對零件信息表的更改。 1、CREATE TRIGGER Tr_入庫表 ON 入庫表 after insert,update,delete AS begin update a set a.庫存數量=a.庫存數量 +b.入庫數量 from 零件信息表 a,(select 零件號,sum(入庫數量) 入庫數量 from inserted group by 零件號 ) b --如果每次插入時零件號不重復,則不必聚合 where a.零件號 =b.零件號; go update a set a.庫存數量=a.庫存數量 -b.入庫數量 from 零件信息表 a,(select 零件號,sum(入庫數量) 入庫數量 from deleted group by 零件號 ) b --如果每次插入時零件號不重復,則不必聚合 where a.零件號 =b.零件號; go end 2、CREATE TRIGGER Tr_出庫表 ON 出庫表 after insert,update,delete AS begin update a set a.庫存數量=a.庫存數量 -b.出庫數量 from 零件信息表 a,(select 零件號,sum(出庫數量) 出庫數量 from inserted group by 零件號 ) b --如果每次插入時零件號不重復,則不必聚合 where a.零件號 =b.零件號; go update a set a.庫存數量=a.庫存數量 +b.出庫數量 from 零件信息表 a,(select 零件號,sum(出庫數量) 出庫數量 from deleted group by 零件號 ) b --如果每次插入時零件號不重復,則不必聚合 where a.零件號 =b.零件號; go end
以上是“sql中觸發器如何實現庫存功能”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。