觸發(fā)器學(xué)習(xí)_Mssql數(shù)據(jù)庫教程
推薦:SQL SERVER數(shù)據(jù)庫開發(fā)之存儲過程應(yīng)用由于個人能力有限,文章中難免會出現(xiàn)錯誤或遺漏的地方,敬請諒解!同時歡迎你指出,以便我能及時修改,以免誤導(dǎo)下一個看官。最后希望本文能給你帶來一定的幫助。 可能有不少朋友使用SQL SERVER做開發(fā)也已經(jīng)有段日子,但還沒有或者很少在項目中使用存儲過程,
觸發(fā)器是一種特殊的存儲過程,類似于其它編程語言中的事件函數(shù),SQL Server™ 允許為 INSERT、UPDATE、DELETE 創(chuàng)建觸發(fā)器,當(dāng)在表(視圖)中插入、更新、刪除記錄時,觸發(fā)一個或一系列 T-SQL 語句。
1:創(chuàng)建觸發(fā)器:
Œ觸發(fā)器可以在企業(yè)管理器里創(chuàng)建,也可以在表名上點(diǎn)右鍵->“所有任務(wù)”->“管理觸發(fā)器”來創(chuàng)建。
用 CREATE TRIGGER創(chuàng)建觸發(fā)器
ON 表名
FOR INSERT、UPDATE 或 DELETE
AS
T-SQL 語句
CREATE TRIGGER Category_Delete
ON Categories
FOR DELETE
AS
UPDATE P SET Discontinued = 1
FROM Products AS P INNER JOIN deleted AS d
ON P.CategoryID = d.CategoryID
GO
CREATE TRIGGER Employee_Update
ON Employees
FOR UPDATE
AS
IF UPDATE (EmployeeID)
BEGIN
RAISERROR ('Transaction cannot be processed.\
***** Employee ID number cannot be modified.', 10, 1)
ROLLBACK TRANSACTION
END
on 表名/視圖
instead of delete/update/insert
as
SQL語句
Œ用查詢分析器刪除
在查詢分析器中使用 drop trigger 觸發(fā)器名稱 來刪除觸發(fā)器。也可以同時刪除多個觸發(fā)器:drop trigger 觸發(fā)器名稱,觸發(fā)器名稱...
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'employee_insupd' AND type = 'TR')//觸發(fā)器是否存在
DROP TRIGGER employee_insupd
GO
用企業(yè)管理器刪除
在企業(yè)管理器中,在表上點(diǎn)右鍵->“所有任務(wù)”->“管理觸發(fā)器”,選中所要刪除的觸發(fā)器,然后點(diǎn)擊“刪除”。
3:重命名觸發(fā)器
Œ用查詢分析器重命名
sp_rename 是 SQL Server™ 自帶的一個存儲過程,用于更改當(dāng)前數(shù)據(jù)庫中用戶創(chuàng)建的對象的名稱,如表名、列表、索引名等。
用企業(yè)管理器重命名
在表上點(diǎn)右鍵->“所有任務(wù)”->“管理觸發(fā)器”,選中所要重命名的觸發(fā)器,修改觸發(fā)器語句中的觸發(fā)器名稱,點(diǎn)擊“確定”。
4:其他
觸發(fā)器內(nèi)部語句出錯時,前面對數(shù)據(jù)更改操作將會無效。
觸發(fā)器中可以使用大多數(shù) T-SQL 語句,但如下一些語句是不能在觸發(fā)器中使用的。
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 語句,其實(shí)是可以的。
分享:詳解SQL存儲過程前言 一直用ASP+ACCESS來編寫網(wǎng)頁和公司的內(nèi)部應(yīng)用系統(tǒng),內(nèi)部應(yīng)用系統(tǒng)也就是大家說的OA吧,這個我也不知道,公司又叫它ERP,反正不管什么,它是用來幫助公司處理日常工作的,簡化勞動的.從來沒用過存儲過程,所有的添加,刪除,修改都是在ASP里面寫程序執(zhí)行,代碼很多
- sql 語句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數(shù)據(jù)庫,提示 無法為該請求檢索數(shù)據(jù) 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數(shù)的用法實(shí)例詳解
- 相關(guān)鏈接:
- 教程說明:
Mssql數(shù)據(jù)庫教程-觸發(fā)器學(xué)習(xí)
。