?? 12-3-2.cfm.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>使用SQL Enterprise Manager創建觸發器</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<b><font FACE="宋體">
<p ALIGN="JUSTIFY">使用</font>SQL Enterprise Manager<font FACE="宋體">創建觸發器</p>
</font></b><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">使用SQL Enterprise Manager創建觸發器要比使用ISQL/w要容易的多。使用SQL
Enterprise Manager創建觸發器的主要優勢是它能保存觸發器的文本,這樣你就可以在以后的某個時候返回來修改之。通過使用該程序,你可以很容易地記錄和管理你創建的觸發器。</p>
<p ALIGN="JUSTIFY">在使用SQL Enterprise Manager來創建觸發器時,首先啟動程序,選擇存儲你數據表的的數據庫,從菜單中選擇Manage|Triggers,這時就會顯示Manage
Triggers對話框。(見圖12.5)。</p>
<p ALIGN="JUSTIFY"><b>圖12.5 觸發器管理窗口</b></p>
<p><img SRC="Image103.gif" tppabs="http://210.74.168.175/guide/asp/part12/Image103.gif" WIDTH="520" HEIGHT="362" ALIGN="LEFT"> </p>
<p ALIGN="JUSTIFY"> <b></p>
</b>
<p ALIGN="JUSTIFY"> </p>
<p ALIGN="JUSTIFY"> </p>
<p ALIGN="JUSTIFY"> </p>
<p ALIGN="JUSTIFY"> </p>
<p ALIGN="JUSTIFY"> </p>
<p ALIGN="JUSTIFY"> </p>
<p ALIGN="JUSTIFY"> </p>
<p ALIGN="JUSTIFY"> </p>
<p ALIGN="JUSTIFY"> </p>
<p ALIGN="JUSTIFY"> </p>
<p ALIGN="JUSTIFY"> </p>
<p ALIGN="JUSTIFY">在該對話框的頂部有兩個下拉式列表,在Table列表內,你可以選擇一個數據表。每一個觸發器必須和一個表格相關聯而且只和一個表格相關聯,在觸發器下拉列表框中在單詞<new>的旁邊包含三個小圖標,這三個圖標分別表示INSERT,UPDATE和DELETE,你可以使用該列表框對被這些動作觸發的觸發器進行選擇。單詞<new>將在你保存該觸發器后被該觸發器的名稱所代替。</p>
<p ALIGN="JUSTIFY">在對話框的文本區域內,提供了觸發器的缺省文本,如下所示:</p>
<p ALIGN="JUSTIFY">CREATE TRIGGER <TRIGGER NAME> ON dbo.webusers</p>
<p ALIGN="JUSTIFY">FOR INSERT ,UPDATE,DELETE</p>
<p ALIGN="JUSTIFY">AS</p>
<p ALIGN="JUSTIFY">如果你已經學過前面的內容,你肯定對該文本非常熟悉;這是一個觸發器的創建語句。使用你要用的觸發器名稱來代替表達式<
TRIGGER NAME></p>
<p ALIGN="JUSTIFY">該自動創建語句創建一個由INSERT,UPDATE和DELETE觸發的觸發器。如果你要為各個動作創建不同的觸發器,或者創建一個只由一個動作觸發的觸發器,你只需要修改這個缺省的語句。簡單地刪除你不想使用的動作就可以了。</p>
<p ALIGN="JUSTIFY">在關鍵字AS下面,你可以輸入你觸發器所要用的語句。比如下面的觸發器在有一個新用戶添加到表webusers中時在表weblog中添加一個新的記錄:</p>
<p ALIGN="JUSTIFY">CREATE TRIGGER tr_webusers_insert ON dbo.webusers</p>
<p ALIGN="JUSTIFY">FOR INSERT</p>
<p ALIGN="JUSTIFY">AS</p>
<p ALIGN="JUSTIFY">INSERT weblog(activity) VALUES (</font><font SIZE="3">“</font><font
FACE="宋體" SIZE="3">New User Added</font><font SIZE="3">”</font><font FACE="宋體"
SIZE="3">)</p>
<p ALIGN="JUSTIFY">你可以在Manage Triggers對話框內點擊保存對象按鈕(一個綠色的三角形)來保存一個觸發器。當一個觸發器第一次被保存時,觸發器的文本從屏幕上消失了。你需要再一次從觸發器下拉列表中選擇該觸發器。</p>
<p ALIGN="JUSTIFY">在觸發器第一次被保存之后,SQL Server自動地在你的觸發器語句內添加新增的語句。比如在觸發器tr_webusers_insert保存之后,tr_webusers_insert之內的文本變為:</p>
<p ALIGN="JUSTIFY">if exists (select * from sysobjects where id=object_id(</font><font
SIZE="3">‘</font><font FACE="宋體" SIZE="3">dbo.tr_webusers_insert</font><font
SIZE="3">’</font><font FACE="宋體" SIZE="3">) and sysstat & 0xf =8)</p>
<p ALIGN="JUSTIFY">drop trigger dbo.tr_webusers_insert</p>
<p ALIGN="JUSTIFY">GO</p>
<p ALIGN="JUSTIFY">CREATE TRIGGER tr_webusers_insert ON dbo.webusers</p>
<p ALIGN="JUSTIFY">FOR INSERT</p>
<p ALIGN="JUSTIFY">AS</p>
<p ALIGN="JUSTIFY">INSERT weblog(activity) VALUES (</font><font SIZE="3">“</font><font
FACE="宋體" SIZE="3">New User Added</font><font SIZE="3">”</font><font FACE="宋體"
SIZE="3">)</p>
<p ALIGN="JUSTIFY">GO</p>
<p ALIGN="JUSTIFY">這些添加的語句有什么用呢?SQL Server為什么要以這種方式來修改你的語句呢?這些新增的語句添加到你的文本中是為了確保在你的觸發器創建之前自動被刪除。第一個語句檢查是否該觸發器已經存在。如果該文件已經自動存在,則該語句會自動地刪除它。</p>
<p ALIGN="JUSTIFY">你可以使用SQL Enterprise Manager為每一個表創建三個觸發器。在你已經保存了觸發器之后,在將來你可以使用Manager
Triggers對話框對該觸發器進行修改。如果沒有SQL Enterprise Manager,這并不是很容易完成的事情。</p>
</font>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -