?? 12-3-4.cfm.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>結合觸發器和事務處理</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<font FACE="宋體"><b>
<p ALIGN="JUSTIFY">結合觸發器和事務處理</p>
</b></font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">觸發器和事務是一個強有力的結合。你可以使用語句ROLLBACK
TRANSACTION來取消觸發觸發器的動作。考察下面的觸發器:</p>
<p ALIGN="JUSTIFY">CREATE TRIGGER tr_webusers ON webusers FOR INSERT,UPDATE,DELETE AS</p>
<p ALIGN="JUSTIFY">IF DATENAME(dw,GETDATE())=</font><font SIZE="3">”</font><font
FACE="宋體" SIZE="3">Tuesday</font><font SIZE="3">”</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">ROLLBACK TRANSACTION</p>
<p ALIGN="JUSTIFY">該觸發器阻止任何人在星期二向表webusers內插入新的記錄,刪除記錄或修改記錄。如果你企圖在星期二向表中添加新記錄,該動作會被語句ROLLBACK
TRANSACTION回轉回去。</p>
<p ALIGN="JUSTIFY">假如你目前正為如何阻止某一個特定的人訪問你的網站而困惑。你不想讓這個家伙能夠在你的網站上注冊。為了做到這一點,你可以創建一個和表webusers相關的觸發器,該觸發器用于檢查這個家伙的姓名,如下所示:</p>
<p ALIGN="JUSTIFY">CREATE TRIGGER tr_webusers FOR INSERT,DELETE,UPDATE AS</p>
<p ALIGN="JUSTIFY">IF EXISTS(SELECT user_name FROM Inserted WHERE user_name=</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">Andrew Jones</font><font SIZE="3">”</font><font
FACE="宋體" SIZE="3">)</p>
<p ALIGN="JUSTIFY">ROLLBACK TRANSACTION</p>
<p ALIGN="JUSTIFY">該觸發器阻止姓名為Andrew Jones的人添加入表webusers內,當姓名Andrew
Jones包含在某個INSERT,DELETE或UPDATE語句內時,該動作就會被語句ROLLBACK
TRANSACTION 倒轉回去。</p>
</font>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -