sql觸發器在哪裡
⑴ sql server 2005在哪裡找到已創建的觸發器
語句級觸發器對於觸發事件只能觸發一次, 而且不能訪問受觸發器影響的每一行的列值。一般用語句級觸發器處理有關引起觸發器觸發的SQL語句的信息——例如,由誰來執行 和什麼時間執行。 2> 行級(Row-level)觸發器,在CREATE TRIGGER語句中包含FOR EACH ROW子句。行級觸發器可對受觸發器影響的每一行觸發,並且能 夠訪問原列值和通過SQL語句處理的新列值。行級觸發器的典型應用是當需要知道行的列值時,執行一條事務規則。SQL Server支持兩種類型的觸發器:</p AFTER 觸發器和INSTEAD OF 觸發器。其中AFTER 類型觸發器要求只有執行某一操作(INSERT UPDATE DELETE) 之後,觸發器才被觸發,且只能在表上定義。可以為針對表的同一操作定義多個觸發器。
⑵ SQL 2008中到哪裡去運行創建的觸發器,我創建了不知道在哪裡初學者請教。。
資料庫-》表,點開有觸發器選項,然後看是觸發器是關聯什麼操作的,比如insert、update、delete
⑶ 請問SQL觸發器用在什麼地方 ...求解...
先說觸發器,再說好處和壞處
-------------------------------
觸發器,主要是用來同步更新數據的,雜亂枯燥的文章不給你轉了,看起來累,舉個例子吧:
假設有兩個表,tab_1 , tab_2
再假設兩個表裡都有「人員性別」這個欄位
tab_1的數據例如: 張三```男```1978`````2002
tab_2的數據例如: 張三```男```銷售科```科長
我要改tab_1中張三的性別為「女」的話,那麼tab_2的性別也該改為「女」,對吧,總不能兩張表的性別不同吧。
如果不用觸發器的話,我們就要改完tab_1,再去改tab_2,使性別都變成女
於是這里可以用到觸發器了:
原理是:當tab_1中某人的性別發生變更後,資料庫自動將tab_2的性別進行同步修改
觸發器也可以這樣應用:
1、當刪除tab_1中的某人信息時,觸發器一並刪除該人的tab_2中的數據
2、在tab_1中新插入一個人員時,觸發器在tab_2中一並新增一條該人的數據
===================================================================================
所以在你建立觸發器時,就要指定該觸發器的用途,是同步更新,還是刪除、插入,由你指定。
基本的語法規則是:
create trigger 觸發器名稱(你自己命名的) on 表 for 用途(delete|update|insert)
as
delete|update|insert語句
----------------------------------------------------------------------
例如:
create trigger tri_A on tab_1 FOR DELETE
AS
delete tab_2 from deleted where tab_2.id = deleted.id;
意思是:在tab_1表上,建立觸發器(tri_A),用於刪除該表的數據時觸發一個事務,什麼事務呢?——刪除tab_2中的該編號人員的記錄。
FOR INSERT、FOR UPDATE分別是建立用於「插入記錄」、「更新數據」的觸發器,例子里的FOR DELETE是用於觸發「刪除記錄」的。
這里還要看清楚,那個delete語句中的表,是from deleted哦,還有,where子句的tab_2.id = deleted.id,不是tab_2.id = tab_1.id哦,deleted.id是指你剛刪除的那條記錄的id(而update、insert,都用inserted.id)
===================================================================================
好處:相對於外部程序、存儲過程,觸發器可以更快更高效的維護數據
壞處:(我自己的經驗)觸發器要用的恰到好處,一個大型應用里,觸發器越少越好,觸發器會使編程時源碼的結構被迫打亂,為將來的程序修改、源碼閱讀帶來很大不便。
⑷ SQl中觸發器怎樣執行的
創建觸發器 是特殊的存儲過程,自動執行,一般不要有返回值。
1、後觸發器 (AFTER,FOR)先執行對應語句,後執行觸發器中的語句。
2、前觸發器 並沒有真正的執行觸發語句(insert,update,delete),而是執行觸發後的語句。
3、行級觸發器 (FOR EACH ROW) 在SQL server 中不存在。
(4)sql觸發器在哪裡擴展閱讀:
創建觸發的語法
CREATE TRIGGER trigger_name --觸發器名稱
ON table_name --觸發的表
[WITH ENCRYPTION]
FOR [DELETE, INSERT, UPDATE] --選擇觸發器類型
AS --觸發後要做的語句
T-SQL語句
GO --結束標記
⑸ 在線等,sql server 2005 在哪建立觸發器
選種表單擊右鍵看有沒有,我沒怎麼用過.
⑹ SQL資料庫中觸發器在哪可以查看到呢
系統的sysobject表中,xtype=『TR』
select * from sysobjects where xtype=『TR』
就能看到你的資料庫中說有的觸發器,及其相關參數了
⑺ 如何查看sql server是否有觸發器
1、通過可視化操作來管理和查看觸發器
在Microsoft SQL Server Management Studio中,選中某一資料庫的某一張表時,在「對象資源管理器詳細」窗口中有「觸發器」項。
通過「觸發器」的右鍵菜單功能,我們可以新建觸發器。如果原來的表中已經存在了觸發器,通過雙擊「觸發器」項可以查看到具體的觸發器,在此處可以執行 修改、刪除等操作。
2、通過查詢分析器來管理和查看觸發器
1)查看錶中的觸發器類型:
sp_helptrigger:返回對當前資料庫的指定表定義的 DML 觸發器的類型。sp_helptrigger 不能用於 DDL 觸發器。
示例: EXEC sp_helptrigger '表名'
2)查看觸發器的有關信息:
sp_help:報告有關資料庫對象(sys.sysobjects 兼容視圖中列出的所有對象)、用戶定義數據類型或某種數據類型的信息。
示例: EXEC sp_help '觸發器名'
3)顯示觸發器的定義:
sp_helptext:顯示規則、默認值、未加密的存儲過程、用戶定義函數、觸發器或視圖的文本。
示例: EXEC sp_helptext '觸發器名'
4)查看當前庫中所有的觸發器:
查詢腳本:SELECT * FROM Sysobjects WHERE xtype = 'TR'
5)查看當前庫中所有的觸發器和與之相對應的表:
查詢腳本:SELECT tb2.name AS tableName,tb1.name AS triggerName FROM Sysobjects tb1 JOIN Sysobjects tb2 ON tb1.parent_obj=tb2.id WHERE tb1.type='TR'
⑻ SQL中觸發器的代碼寫在哪裡
表節點\觸發器-右鍵菜單-新建觸發器
⑼ SQL觸發器在存放在哪個位置
放在需要觸發條件的表下面,例如下面的on後面跟的[dbo].[A01]就是給哪個表觸發
ALTER TRIGGER [dbo].[A01_UPDATE_A815]
ON [dbo].[A01]
AFTER UPDATE
AS
BEGIN
SELECT A0188 INTO #A0188 FROM INSERTED
IF UPDATE ("A0191") OR UPDATE ("EXT072")
⑽ sql server 2008 觸發器放在哪
放在需要觸發條件的表下面,例如下面的on後面跟的[dbo].[A01]就是給哪個表觸發
ALTER TRIGGER [dbo].[A01_UPDATE_A815]
ON [dbo].[A01]
AFTER UPDATE
AS
BEGIN
SELECT A0188 INTO #A0188 FROM INSERTED
IF UPDATE ("A0191") OR UPDATE ("EXT072")