牛腩新聞發布系統 觸發器

2021-06-25 12:04:03 字數 1686 閱讀 4696

什麼是觸發器:

以我個人的理解就是:觸發器就是乙個方法,這個方法中儲存著有對錶操作的sql語句。其實觸發器也是是特殊的儲存過程,只不過觸發器需要乙個事件來推動它發生。過程有事件過程和通用過程,觸發器就屬於事件過程。

為什麼使用觸發器:

因為觸發器是特殊的儲存過程,那麼他必然也帶有一些儲存過程的優點。對於多表的複雜操作,他可以將這個複雜的操作進行封裝。同時還有一點點的不同就是,觸發器可通過資料庫中的相關表實現級聯(主鍵,外來鍵)更改。這樣就會帶來很多省事的地方。

如何使用觸發器:

sql

use [newssystem]

go/****** object: trigger [dbo].[tridelete] script date: 09/07/2014 14:29:44 ******/

set ansi_nulls on

goset quoted_identifier on

goalter trigger [dbo].[tridelete]

on [dbo].[category]

instead of delete

as begin

declare @caid int

select @caid=id from deleted

delete comment where newsid in(select newsid from news where caid =@caid )

----刪除新聞

delete news where caid =@caid

----刪除類別

delete category where id =@caid

end

同時還要注意的是,雖然觸發器和儲存過程很相像,但是觸發器的建立離不開表,而儲存過程的建立需要建立在庫下。

在d層**:

///

/// 只要說刪除第幾個就ok了

/// 返回boolean型

public boolean delete(string id)

;int res = sqlhelper.executenonquery(cmdtext, paras, commandtype.text);

if (res > 0)

return flag;

}在u層中要給乙個事件,比如說click事件去觸發這個方法的實現。這裡就不展示u層**,實際上在d層的**沒有改變,依舊是乙個刪除語句,不同的就是在sql中的觸發器的語句。

通過上次寫的儲存過程的d層**以及本次的觸發器的d層**,我們可以發現儲存過程中俄cmdtext這個鏈結字串知識乙個儲存過程的名稱,而觸發器的卻是和普通的sql增刪改語句相同的語句。這應該就是百科上的那句話:觸發器和儲存過程唯一區別是觸發器不能執行execute語句呼叫,而是在使用者執行transaction—sql語句時自動觸發執行。

觸發器的功能很強大,但是我們還是要謹慎的使用,如果各個地方都用到了觸發器,這樣會破壞資料的結構,給後期的維護都會帶來不便。

Web發布 牛腩新聞發布系統

最近實戰了乙個新聞發布系統,基本功能都已實現,最關鍵的是對其發布從而使更多的使用者使用到它,如何操作呢?請往下看 一 安裝iis iis是internet information services的縮寫,意為網際網路資訊服務,是由微軟公司提供的基於執行microsoft windows的網際網路基本...

牛腩新聞發布系統總結

用時半個月的時間,完車了牛老師的新聞發布系統,剛開始很是期待,因為這是第乙個做網頁的系統,有種說不說的欣喜。簡單的做了個圖,如下圖 和c s 的系統相比,不同之處就在於表示層了。因為是b s 的系統,是通過瀏覽器,讓使用者瀏覽的,所以所有的展示都是通過瀏覽器的解析,以及與伺服器的請求和返回來完成任務...

牛腩新聞發布系統總結

好喜歡牛老師,咳咳咳廣西南寧人,加快速度不到2倍,聽著感覺是小羅的聲音呵呵,願意聽牛老師的聲音,跟著節奏走。牛腩看了20多天,整個過程下來,豁然開朗 神奇清爽。終於邁進web開發的門檻,再一次經歷除機房收費系統之外的軟體開發流程,而且是b s模式的開發,有了小小的認識。製作牛腩的過程,顛覆了我以往的...