當前位置:首頁 » 編程語言 » sql觸發器寫法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql觸發器寫法

發布時間: 2023-05-25 02:28:10

『壹』 請問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都是不一樣的