更新時(shí)間:2021-06-21 16:41:43作者:admin2
存儲(chǔ)過(guò)程很好理解啊你在程序中提交幾十上百條SQL語(yǔ)句,超麻煩的說(shuō),也易出錯(cuò),將它們集中到過(guò)程中,程序中只要一句語(yǔ)句調(diào)用就可以了觸發(fā)器就是在事務(wù)等操作中應(yīng)用的比如銀行取錢過(guò)程中,更新一方數(shù)據(jù)的同時(shí),通過(guò)觸發(fā)器更新另一方數(shù)據(jù)(當(dāng)然這個(gè)比喻太簡(jiǎn)單)
存儲(chǔ)過(guò)程就相當(dāng)于子程序,比如批量處理SQL語(yǔ)句執(zhí)行或執(zhí)行SQL語(yǔ)言的編程。我用存儲(chǔ)過(guò)程用的最多的地方就是數(shù)據(jù)庫(kù)信息的分頁(yè)查詢。。觸發(fā)器的例子除了銀行,最最常見的就是論壇啦。你回了別人一個(gè)帖子,數(shù)據(jù)庫(kù)里就會(huì)增加這個(gè)帖子的內(nèi)容,同時(shí)更新樓主的回帖數(shù),同時(shí)還增加你的發(fā)帖數(shù)
觸發(fā)器與存儲(chǔ)過(guò)程非常相似,觸發(fā)器也是SQL語(yǔ)句集,兩者唯一的區(qū)別是觸發(fā)器不能用EXECUTE語(yǔ)句調(diào)用,而是在用戶執(zhí)行Transact-SQL語(yǔ)句時(shí)自動(dòng)觸發(fā)(激活)執(zhí)行。觸發(fā)器是在一個(gè)修改了指定表中的數(shù)據(jù)時(shí)執(zhí)行的存儲(chǔ)過(guò)程。通常通過(guò)創(chuàng)建觸發(fā)器來(lái)強(qiáng)制實(shí)現(xiàn)不同表中的邏輯相關(guān)數(shù)據(jù)的引用完整性和一致性。由于用戶不能繞過(guò)觸發(fā)器,所以可以用它來(lái)強(qiáng)制實(shí)施復(fù)雜的業(yè)務(wù)規(guī)則,以確保數(shù)據(jù)的完整性。觸發(fā)器不同于存儲(chǔ)過(guò)程,觸發(fā)器主要是通過(guò)事件執(zhí)行觸發(fā)而被執(zhí)行的,而存儲(chǔ)過(guò)程可以通過(guò)存儲(chǔ)過(guò)程名稱名字而直接調(diào)用。當(dāng)對(duì)某一表進(jìn)行諸如UPDATE、INSERT、DELETE這些操作時(shí),SQLSERVER就會(huì)自動(dòng)執(zhí)行觸發(fā)器所定義的SQL語(yǔ)句,從而確保對(duì)數(shù)據(jù)的處理必須符合這些SQL語(yǔ)句所定義的規(guī)則。