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