日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

触发器讲解

發布時間:2024/1/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 触发器讲解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

觸發器是一種特殊的存儲過程,類似于其它編程語言中的事件函數,SQL Server 允許為 INSERT、UPDATE、DELETE 創建觸發器,當在表(視圖)中插入、更新、刪除記錄時,觸發一個或一系列 T-SQL 語句。

本專題的目的并非是向您詳盡地介紹觸發器,而是系統地向您介紹觸發器的常用知識與相關應用,并與您一起探討應用經驗,如果您需要了解觸發器不常用的知識點,請參見 SQL Server 聯機叢書(安裝 SQL Server 時默認是安裝的)。

?

觸發器到底可不可以在視圖上創建

在 SQL Server 聯機叢書中,是沒有說觸發器不能在視圖上創建的, 并且在語法解釋中表明:在 CREATE TRIGGER 的 ON 之后可以是視圖。 然而,事實似乎并不是如此,很多專家也說觸發器不能在視圖上創建。 我也專門作了測試,的確如此,不管是普通視圖還是索引視圖,都無法在上面創建觸發器,真的是這樣嗎?請點擊詳細, 但是無可厚非的是:當在臨時表或系統表上創建觸發器時會遭到拒絕。

深刻理解 FOR

CREATE TRIGGER 語句的 FOR 關鍵字之后可以跟 INSERT、UPDATE、DELETE 中的一個或多個,也就是說在其它情況下是不會觸發觸發器的, 包括 SELECT、TRUNCATE、WRITETEXT、UPDATETEXT。相關內容

一個有趣的應用

我們看到許多注冊系統在注冊后都不能更改用戶名,但這多半是由應用程序決定的, 如果直接打開數據庫表進行更改,同樣可以更改其用戶名, 在觸發器中利用回滾就可以巧妙地實現無法更改用戶名……詳細內容

觸發器內部語句出錯時……

這種情況下,前面對數據更改操作將會無效。 舉個例子,在表中插入數據時觸發觸發器,而觸發器內部此時發生了運行時錯誤,那么將返回一個錯誤值,并且拒絕剛才的數據插入。

啟用或禁用觸發器

通過在查詢分析器中執行 alter table 可以啟用或禁用表的一個或所有觸發器。詳細內容

不能在觸發器中使用的語句

觸發器中可以使用大多數 T-SQL 語句,但如下一些語句是不能在觸發器中使用的。

  • CREATE 語句,如:CREATE DATABASE、CREATE TABLE、CREATE INDEX 等。
  • ALTER 語句,如:ALTER DATABASE、ALTER TABLE、ALTER INDEX 等。
  • DROP 語句,如:DROP DATABASE、DROP TABLE、DROP INDEX 等。
  • DISK 語句,如:DISK INIT、DISK RESIZE。
  • LOAD 語句,如:LOAD DATABASE、LOAD LOG。
  • RESTORE 語句,如:RESTORE DATABASE、RESTORE LOG。
  • RECONFIGURE
  • 說明:有人說不能用 TRUNCATE TABLE 語句,其實是可以的。
慎用觸發器

觸發器功能強大,輕松可靠地實現許多復雜的功能,為什么又要慎用呢。 觸發器本身沒有過錯,但由于我們的濫用會造成數據庫及應用程序的維護困難。 在數據庫操作中,我們可以通過關系、觸發器、存儲過程、應用程序等來實現數據操作…… 同時規則、約束、缺省值也是保證數據完整性的重要保障。 如果我們對觸發器過分的依賴,勢必影響數據庫的結構,同時增加了維護的復雜程序……詳細內容

?

文章來自http://www.cftea.com/specials/trigger/

轉載于:https://www.cnblogs.com/ccsbb/archive/2010/05/07/1729948.html

總結

以上是生活随笔為你收集整理的触发器讲解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。