日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

觸發(fā)器學(xué)習(xí)_Mssql數(shù)據(jù)庫教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦: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ā)器

CREATE TRIGGER 觸發(fā)器名稱
ON 表名
FOR INSERT、UPDATE 或 DELETE
AS
T-SQL 語句
例:
USE Northwind
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
可以使用IF UPDATE語句IF UPDATE (<column_name>)定義一個監(jiān)視指定列的數(shù)據(jù)更新的觸發(fā)器。這樣,就可以讓觸發(fā)器容易的隔離出特定列的活動。
USE Northwind
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
可能你需要在視圖上創(chuàng)建觸發(fā)器,如果你按照以上例子的方法來創(chuàng)建的話,可能會出現(xiàn)“對象無效”的錯誤。在 SQL Server™ 聯(lián)機(jī)叢書中,是沒有說觸發(fā)器不能在視圖上創(chuàng)建的, 并且在語法解釋中表明:在 CREATE TRIGGER 的 ON 之后可以是視圖。實(shí)際上,我們不能在視圖上創(chuàng)建 FOR 觸發(fā)器,而應(yīng)該創(chuàng)建 INSTEAD OF 觸發(fā)器.每一個表或視圖只能有一個INSTEAD OF觸發(fā)器。不能在帶有WITH CHECK OPTION定義的視圖中創(chuàng)建INSTEAD OF觸發(fā)器。
create trigger 觸發(fā)器名
on 表名/視圖
instead of delete/update/insert
as
SQL語句
2:刪除觸發(fā)器

Œ用查詢分析器刪除
在查詢分析器中使用 drop trigger 觸發(fā)器名稱 來刪除觸發(fā)器。也可以同時刪除多個觸發(fā)器:drop trigger 觸發(fā)器名稱,觸發(fā)器名稱...

USE pubs
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ā)器

Œ用查詢分析器重命名

exec sp_rename 原名稱, 新名稱

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í)行,代碼很多

來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫教程/更新時間:2010-05-29
相關(guān)Mssql數(shù)據(jù)庫教程