『壹』 請問sql server的觸發器怎麼寫它是放在伺服器哪塊沒用過請高手指導下
觸發器的創建語法:
Create Trigger 觸發器名稱
On Student--在Student表中創建觸發器
for Update --在修改的時候出發下面的語句 ;也可能是for insert,for delete;也就是說,觸發器有三種出發機制:插入,修改,刪除;
As --事件觸發後所要做的事情
if Update(StudentID)
begin
Update BorrowRecord
Set StudentID=i.StudentID
From BorrowRecord br , Deleted d ,Inserted i --Deleted和Inserted臨時表
Where br.StudentID=d.StudentID
end
望採納!!!
『貳』 sql觸發器 怎麼寫
delimiter $
create trigger getdate after insert on users for each row
begin
insert into date(csrq) values(date(substring(new.sfzhm,7,8)));
end
delimiter ;
『叄』 SQL觸發器寫法
觸發器(trigger)是SQL server 提供給程序員和數據分析員來保證數據完整性的一種方法,它是與表事件相關的特殊的存儲過程,它的執行不是由程序調用,也不是手工啟動,而是由事件來觸發,比如當對一個表進行操作( insert,delete, update)時就會激活它執行。觸發器經常用於加強數據的完整性約束和業務規則等。 觸發器可以從 DBA_TRIGGERS ,USER_TRIGGERS 數據字典中查到。SQL3的觸發器是一個能由系統自動執行對資料庫修改的語句。
語法:
DELIMITER |
CREATE TRIGGER `<databaseName>`.`<triggerName>`
< [ BEFORE | AFTER ] > < [ INSERT | UPDATE | DELETE ] >
ON [dbo]<tableName> //dbo代表該表的所有者
FOR EACH ROW
BEGIN
--do something
END |
例子:
-- 插入時執行觸發器
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
create trigger [dbo].[rscOpenInsert]
on [dbo].[RSC_INFO]
for insert
as www.2cto.com
DECLARE
@v_rscID varchar(50),
@v_status int
begin
select @v_rscID=rscID,@v_status=status from inserted;
--取得當前資源信息status>4 才插入信息
if @v_status > 4
begin
insert into RSC_OPEN_SYNCHRONOUS(rscID,opStatus,opDateTime) values (@v_rscID,'insert',getDate())
end
end
--- 更新時執行觸發器
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
create trigger [dbo].[rscOpenUpdate]
on [dbo].[RSC_INFO]
for update
as
DECLARE
@v_rscID varchar(50),
@v_status int
begin www.2cto.com
select @v_rscID=rscID,@v_status=status from inserted;
--取得當前資源信息status>4 才更新信息
if @v_status > 4
begin
update RSC_OPEN_SYNCHRONOUS set opStatus = 'update', opDateTime = getDate() where rscID=@v_rscID
end
end
『肆』 SQL如何創建一個觸發器
創建觸發器用 CREATE TRIGGER
CREATE TRIGGER 觸發器名稱
ON 表名
FOR INSERT、UPDATE 或 DELETE
AS T-SQL 語句
注意:觸發器名稱是不加引號的。
例子:
create trigger jcsj_1
on 表名
for insert
as
begin
update 表名 set 授課門數=授課門數+1 where 教師ID=(select 教師 ID from inserted)
end
詳見
http://tech.ddvip.com/2007-01/116783077317261.html
請採納答案,支持我一下。
『伍』 sql觸發器
CREATE OR REPLACE TRIGGER def$_propagator_trig
//建立觸發器名為def$_propagator_trig
BEFORE INSERT ON system.def$_propagator
//當對system.def$_propagator進行插入的時候會執行以下代碼
DECLARE
prop_count NUMBER;
//聲明標量prop_count,變數聲明要在declare和begin之間
BEGIN
SELECT count(*) into prop_count
FROM system.def$_propagator;
//把select語句查詢出來的結果賦值給prop_count變數,into作用是賦值
IF (prop_count > 0) THEN //這是IF語句
-- Raise plicate propagator error //這是注釋
sys.dbms_sys_error.raise_system_error(-23394);
//如果查詢出來的結果是大於0的話,就提示一個 -23394的錯誤
END IF; //結束IF語句
END; //結束
這跟存儲過程的代碼差不多,就一點點區別。
夠詳細了吧,這裡面得語法注釋是使用: -- XXXXXXX
希望滿意 。
這次代碼不少了吧?
『陸』 SQL 觸發器怎麼寫
CREATETRIGGER[dbo].[TRG_A]
ON[dbo].[A]
AFTERUPDATE
AS
BEGIN
INSERTINTOB
(
[FILD]
,[BEFORE]
,[AFTER]
)
SELECT'DATE'
,DEL.[DATE]
,UPD.[DATE]
FROMDELETEDDEL
INNERJOININSERTEDUPD
ONDEL.ID=UPD.ID
ANDDEL.[DATE]!=UPD.[DATE];
INSERTINTOB
(
[FILD]
,[BEFORE]
,[AFTER]
)
SELECT'NAME'
,DEL.[NAME]
,UPD.[NAME]
FROMDELETEDDEL
INNERJOININSERTEDUPD
ONDEL.ID=UPD.ID
ANDDEL.[NAME]!=UPD.[NAME]
END
『柒』 sql 觸發器怎麼寫
嗯,你要把資料庫說清楚,sql server和oracle都是不一樣的