?? 6208.htm
字號:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>MS SQL基礎教程:觸發器的原理 - 編程入門網</title>
<meta name="keywords" content="MS SQL基礎教程:觸發器的原理">
<meta name="description" content="MS SQL基礎教程:觸發器的原理">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="/images/style.css" rel="stylesheet" type="text/css" />
<script src="/js1/head.js"></script>
</head>
<body leftmargin="0" topmargin="0" bgcolor="#efefef" oncopy=nocopy()>
<TABLE width="760" cellPadding="0" cellSpacing="0" bgcolor="#eff7fe" align="center">
<TR>
<TD><a href="/index.htm"><img src="/images/logo1.gif" width="150" height="60" border="0"></a></TD>
<TD width="470" align="right"><script src="/js1/top.js"></script></TD>
<TD width="125" align="center"><script src="/js1/topsy.js"></script></TD>
</TR>
</TABLE>
<table width="760" border="0" cellpadding="1" cellspacing="0" class="bklan" align="center">
<tr>
<td align="center" bgcolor="#eff7fe" height="24"> | <a href='/Programming/index.htm'>編程語言</a> | <a href='/webkf/index.htm'>web開發</a> | <a href='/data/index.htm'>數據庫</a> | <a href='/Network/index.htm'>網絡技術</a> | <a href='/OS/index.htm'>操作系統</a> | <a href='/Servers/index.htm'>服務器</a> | <a href='/web/index.htm'>網頁設計</a> | <a href='/Design/index.htm'>圖形設計</a> | <a href='/Office/index.htm'>辦公軟件</a> | <a href='/soft/index.htm'>常用軟件</a> | <a href='/shadu/index.htm'>殺毒頻道</a> | <a href='/PC/index.htm'>學電腦</a> |</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" width="760" align="center" bgcolor="#ffffff" border="0">
<tr>
<td align="center"><script src="/js1/content1.js"></script></td>
</tr>
</table>
<table width="760" border="0" cellpadding="0" cellspacing="0" align="center">
<tr>
<td height="25" background="/templets/img/31bg3.gif" align="left" class="guidet"> → 當前位置:<a href='http://www.bianceng.cn/'>首頁</a>→<a href='/data/index.htm'>數據庫</a>→<a href='/data/SQLServer/index.htm'>SQL Server</a>→<a href='/data/SQLServer/jc/index.htm'>SQL Server教程</a>→正文</td>
</tr>
</table>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td valign="top" class="guidet" width="595"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="ct">
<tr>
<td align="center" valign="middle" class="til"><h3> MS SQL基礎教程:觸發器的原理 </h3>
發布時間:2007-12-25 來源:網絡/責編:編程入門 作者:佚名<br />
<script src="/js1/468.js"></script>
</td>
</tr>
<tr>
<td style="font-size:14px" align="left" class="til"><table border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td align="center"><script src="/js1/300.js"></script></td>
</tr>
</table><p> 從以上的介紹中我們可以看出觸發器具有強大的功能,那么MS SQL Server 是如何管理觸發器來完成這些任務呢?下面我們將對其工作原理及實現做較為詳細的介紹。</p>
<p> 每個觸發器有兩個特殊的表:插入表和刪除表。這兩個表是邏輯表,并且這兩個表是由系統管理的,存儲在內存中,不是存儲在數據庫中,因此不允許用戶直接對其修改。這兩個表的結構總是與被該觸發器作用的表有相同的表結構。這兩個表是動態駐留在內存中的,當觸發器工作完成,這兩個表也被刪除。這兩個表主要保存因用戶操作而被影響到的原數據值或新數據值。另外,這兩個表是只讀的,即用戶不能向這兩個表寫入內容,但可以引用表中的數據。例如可用如下語句查看DELETED 表中的信息:</p>
<p> select * from deleted</p>
<p> 下面詳細介紹這兩個表的功能:</p>
<p> 12.7.1 插入表的功能</p>
<p> 對一個定義了插入類型觸發器的表來講,一旦對該表執行了插入操作,那么對向該表插入的所有行來說,都有一個相應的副本存放到插入表中。即插入表就是用來存儲向原表插入的內容。---www.bianceng.cn</p>
<p> 12.7.2 刪除表的功能</p>
<p> 對一個定義了刪除類型觸發器的表來講,一旦對該表執行了刪除操作,則將所有的刪除行存放至刪除表中。這樣做的目的是,一旦觸發器遇到了強迫它中止的語句被執行時,刪除的那些行可以從刪除表中得以恢復。</p>
<p> 需要強調的是,更新操作包括兩個部分,即先將更新的內容去掉,然后將新值插入。因此對一個定義了更新類型觸發器的表來講,當報告會更新操作時,在刪除表中存放了舊值,然后在插入表中存放新值。</p>
<p> 由于觸發器僅當被定義的操作被執行時才被激活,即僅當在執行插入、刪除、和更新操作時,觸發器將執行。每條SQL 語句僅能激活觸發器一次,可能存在一條語句影響多條記錄的情況。在這種情況下就需要變量@@rowcount 的值,該變量存儲了一條SQL 語句執行后所影響的記錄數,可以使用該值對觸發器的SQL 語句執行后所影響的記錄求合計值。一般來說,首先要用IF 語句測試@@rowcount 的值以確定后面的語句是否執行。</p>
<p> <a href="/data/SQLServer/jc/200712/6352.htm">查看全套"MS SQL入門基礎教程"</a></p><center><br /><script src="/js1/4682.js"></script></center>
<p>上一篇:<a href='/data/SQLServer/jc/200712/6207.htm'>MS SQL基礎教程:創建觸發器</a> 下一篇:<a href='/data/SQLServer/jc/200712/6209.htm'>MS SQL基礎教程:INSTEAD OF觸發器</a> </p></td>
</tr>
<tr>
<td align="left" style="font-size:14px;" height="25"><IMG src="/images/t0.gif" width="12" height="12" align=absMiddle><strong>相關文章</strong><br /><table width='100%' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6207.htm">MS SQL基礎教程:創建觸發器</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6209.htm">MS SQL基礎教程:INSTEAD OF觸發器</a><br/>
</td>
</tr>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6206.htm">MS SQL基礎教程:觸發器概述</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6210.htm">MS SQL基礎教程:觸發器的應用</a><br/>
</td>
</tr>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6205.htm">MS SQL基礎教程:數據庫中的鎖</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6211.htm">MS SQL基礎教程:觸發器的高級應用</a><br/>
</td>
</tr>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6204.htm">MS SQL基礎教程:SQL數據庫中的事務</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6212.htm">MS SQL基礎教程:管理觸發器</a><br/>
</td>
</tr>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6203.htm">MS SQL基礎教程:更新數據</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6213.htm">MS SQL基礎教程:游標、游標的優點和種類</a><br/>
</td>
</tr>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6202.htm">MS SQL基礎教程:刪除數據</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6214.htm">MS SQL基礎教程:聲明游標</a><br/>
</td>
</tr>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6201.htm">MS SQL基礎教程:數據庫全文檢索</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6215.htm">MS SQL基礎教程:打開游標</a><br/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td width="165" valign="top" class="guideb"><script src="/js1/1601.js"></script><table width="100%" border="0" cellpadding="0" cellspacing="0" valign="top">
<tr>
<td height="25" align="center" background="/templets/img/31bg3.gif"><strong>閱讀排行</strong></td>
</tr>
<tr>
<td>·<a href="/data/SQLServer/jc/200712/6352.htm">MS SQL Server入門教程</a><br/>
·<a href="/data/SQLServer/jc/200807/10974.htm">MS SQL基礎教程:存儲過程</a><br/>
·<a href="/data/SQLServer/jc/200705/1189.htm">sql語言教程</a><br/>
·<a href="/data/SQLServer/jc/200807/10973.htm">MS SQL基礎教程:創建存儲</a><br/>
·<a href="/data/SQLServer/jc/200705/1182.htm">sql字符串函數</a><br/>
·<a href="/data/SQLServer/jc/200712/6301.htm">MS SQL基礎教程:SQL Serve</a><br/>
·<a href="/data/SQLServer/jc/200712/6302.htm">MS SQL基礎教程:SQL Serve</a><br/>
·<a href="/data/SQLServer/jc/200712/6314.htm">MS SQL基礎教程:數據類型</a><br/>
·<a href="/data/SQLServer/jc/200705/1188.htm">Sql語言基礎</a><br/>
·<a href="/data/SQLServer/jc/200712/6311.htm">MS SQL基礎教程:Transact-</a><br/>
·<a href="/data/SQLServer/jc/200712/6312.htm">MS SQL基礎教程:SQL變量</a><br/>
·<a href="/data/SQLServer/jc/200705/1184.htm">sql基本語句</a><br/>
·<a href="/data/SQLServer/jc/200807/10972.htm">MS SQL基礎教程:管理存儲</a><br/>
·<a href="/data/SQLServer/jc/200712/6306.htm">MS SQL基礎教程:數據庫基</a><br/>
·<a href="/data/SQLServer/jc/200705/1178.htm">sql數據表</a><br/>
</td>
</tr>
<tr>
<td><script src="/js1/1602.js"></script></td>
</tr>
<tr>
<td height="25" align="center" background="/templets/img/31bg3.gif"><strong>最新文章</strong></td>
</tr>
<tr>
<td><script src="/plus/js/0.js" language="javascript"></script></td>
</tr>
</table></td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" width="760" align="center" bgcolor="#ffffff" border="0">
<tr>
<td align="center"><script src="/js1/content2.js"></script></td>
</tr>
</table>
<table width="760" border="0" cellspacing="0" cellpadding="0" align="center">
<tr height="26">
<td bgcolor="#e1f0fd" width="48"></td>
<td bgcolor="#6ab3f4" width="35"></td>
<td bgcolor="#0a518f" colspan="2" width="4"></td>
<td bgcolor="#c0c0c0" width="530" align="center"><a title="將本站設為你的首頁" onclick="this.style.behavior='url(#default#homepage)';this.sethomepage('http://www.bianceng.cn');return false;" href="http://www.bianceng.cn/">設為首頁</a> | <a class="navmenu"
title="將本站加入到你的收藏夾"
href="javascript:window.external.AddFavorite(location.href,document.title)">加入收藏</a> | <a href="/about/about.htm">關于本站</a> | <a href="/plus/flink.php">友情鏈接</a> | <a href="/about/banquan.htm">版權聲明</a> | <a href="/plus/sitemap.html">網站地圖</a> | <a href="/plus/rssmap.html">RSS訂閱</a></td>
<td bgcolor="#0a518f" colspan="2" width="4"></td>
<td bgcolor="#6ab3f4" width="32"></td>
<td bgcolor="#e1f0fd" width="47"></td>
</tr>
<tr height="26">
<td colspan="9" bgcolor="#FFFFFF" align="center">編程入門網 版權所有,bianceng.cn,All Rights Reserved. <script src="/js/tongji.js"></script> 閱讀次數:<script src="/plus/count.php?aid=6208&mid=0" language="javascript"></script></td>
</tr>
</table>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -