SQL觸發器寫法,SQL資料庫中的觸發器怎麼寫啊?急

時間 2022-03-28 08:08:14

1樓:匿名使用者

觸發器(trigger)是sql server 提供給程式設計師和資料分析員來保證資料完整性的一種方法,它是與表事件相關的特殊的儲存過程,它的執行不是由程式呼叫,也不是手工啟動,而是由事件來觸發,比如當對乙個表進行操作( insert,delete, update)時就會啟用它執行。觸發器經常用於加強資料的完整性約束和業務規則等。 觸發器可以從 dba_triggers ,user_triggers 資料字典中查到。

sql3的觸發器是乙個能由系統自動執行對資料庫修改的語句。

語法:delimiter |

create trigger ``.``

< [ before | after ] > < [ insert | update | delete ] >

on [dbo]//dbo代表該錶的所有者

for each row

begin

--do something

end |

例子:-- 插入時執行觸發器

set ansi_nulls on

set quoted_identifier on

gocreate 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())

endend

--- 更新時執行觸發器

set ansi_nulls on

set quoted_identifier on

gocreate trigger [dbo].[rscopenupdate]

on [dbo].[rsc_info]

for update

asdeclare

@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

endend

2樓:匿名使用者

基本語法

create trigger tri_name

on table

for insert/update/deleted

assql code

例:create trigger tri_mc(tri_mc:自定義觸發器的名稱)

on table (table:觸發的表名)

for insert (觸發型別:insert,插入資料觸發 update,更新資料觸發 delete,刪除資料觸發)

asdeclare @kssj datetime (定義乙個變數,做中間處理)

declare @sqbh char(40)

select @kssj = kssj,@sqbh = sqbh from inserted

(插入資料時,插入的資料在表 inserted

更新資料時,更新後的資料在表 inserted 更新前的資料在表中 deleted

刪除資料時,刪除的資料在表 deleted

不同的操作可以,取出不同的中間資料,做處理,例子中取出插入的資料)

update table2 set isks = 1,kksj = @kssj where sqbh = @sqbh

(根據中間處理做相應操作,例子的處理為,將插入的值同步更新到另乙個表)

3樓:匿名使用者

仔細看看這段**:

update borrowrecord

set br.studentid=i.studentidfrom borrowrecord br , deleted d ,inserted i

where br.studentid=d.studentidfrom borrowrecord br , deleted d ,inserted i

表示用別名br來代替borrowrecord ,用d來代替deleted,用d來代替inserted。

明白了麼?

good luck!

4樓:

create trigger tg_upt_ttd on [dbo].[table]

for insert, update

asupdate table

set d = 'true'

from table,inserted dwhere table.主鍵 = d.主鍵and table.a = 'true'

and table.b = 'true'

and table.c = 'true'

5樓:在物理學之後

create trigger dbo.settrueon yourtable for updateasif exists (select 'true'

from inserted as i

where i.a = true and i.b = true and i.c = true )

update yourtable

set yourtable.d = truewhere yourtable.a = true and yourtable.

b = true and yourtable.c = true

6樓:使用者id以登出

declare @wages float,@allwages float

select @wages=sum(wages) from dbo.employee

print @allwages

update dbo.factory set allwages=@wages where factory='a1001'

7樓:

create trigger t_update on [table]

for update

asupdate [table] set d=1 where a=1 and b=1 and c=1

sql資料庫中的觸發器怎麼寫啊?急

8樓:匿名使用者

問問題總得說清楚吧,

你的觸發條件是什麼?你的觸發動作是什麼?

你這樣提問無頭無腦的

sql server裡面的觸發器怎麼寫?

9樓:勞雙韶旭

if(object_id('tgr_classes_insert','tr')

isnot

null)

drop

trigger

tgr_classes_insert

gocreate

trigger

tgr_classes_insert

ont_user

forinsert

--插入觸發

as--定義變數

declare

@username

varchar(20),

@password

varchar(20),

@temp

int;

--在inserted表中查詢已經插入記錄資訊select

top1

@username

=username,

@password

=userpass

from

t_user

order

bydeac;

insert

into

login

(username,userpass)values(@username,@password)

10樓:

update borrowrecord

set br.studentid=i.studentidfrom borrowrecord br , deleted d ,inserted i

where br.studentid=d.studentid其中br代表當前查詢表的別名,d代表在插入新值之前(即修改前)的表的別名,i代表在插入新值之後(即修改後)的表的別名

11樓:匿名使用者

仔細看看這段**:

update borrowrecord

set br.studentid=i.studentidfrom borrowrecord br , deleted d ,inserted i

where br.studentid=d.studentidfrom borrowrecord br , deleted d ,inserted i

表示用別名br來代替borrowrecord ,用d來代替deleted,用d來代替inserted。

明白了麼?

good luck!

12樓:匿名使用者

基本語法格式

create trigger tri_name

on table

for insert/update/deleted

assql code

例:create trigger tri_mc(tri_mc:自定義觸發器的名稱)

on table (table:觸發的表名)

for insert (觸發型別:insert,插入資料觸發 update,更新資料觸發 delete,刪除資料觸發)

asdeclare @kssj datetime (定義乙個變數,做中間處理)

declare @sqbh char(40)

select @kssj = kssj,@sqbh = sqbh from inserted

(插入資料時,插入的資料在表 inserted

更新資料時,更新後的資料在表 inserted 更新前的資料在表中 deleted

刪除資料時,刪除的資料在表 deleted

不同的操作可以,取出不同的中間資料,做處理,例子中取出插入的資料)

update table2 set isks = 1,kksj = @kssj where sqbh = @sqbh

(根據中間處理做相應操作,例子的處理為,將插入的值同步更新到另乙個表)

請問sql觸發器insert觸發器如何使用

謹傑 在sql server中使用 create trigger insert stu on stufor insert asinsert into user uname,upassword select sid,sid from inserted在oracle中使用,預設密碼為學生id號creat...

資料庫觸發器有什麼作用,SQL中觸發器有什麼作用

觸發器的作用 自動計算資料值,如果資料的值達到了一定的要求,則進行特定的處理。同步實時地複製表中的資料。實現複雜的非標準的資料庫相關完整性規則。可在寫入資料表前,強制檢驗或轉換資料。觸發器發生錯誤時,異動的結果會被撤銷。部分資料庫管理系統可以針對資料定義語言 ddl 使用觸發器,稱為ddl觸發器。可...

SQL觸發器有什麼用處啊

舉個例子,比如 入庫單錶 入庫統計表 使用者只要錄入某貨就行了 入庫統計表該貨的總數量的變更,這是由觸發器完成的再舉個例子 工資表當工資超過10000.00元,該職員的收入狀況字段自動換成 高收入 使用者只需要記錄職員的工資,收入狀態由觸發器自動完成還有個例子 貨架表 該錶記錄了所有貨物和所在貨架 ...

SQL如何建立觸發器,SQL如何建立乙個觸發器

這最好用程式控制,有資料庫sql05可用加密.也可用如果對mssql的使用者資訊有興趣的,可能會發現master.dbo.sysxlogins裡面存放著使用者的口令,可是呢,password欄位如果不是null就是一堆看不懂的binary,這個口令是怎麼加密的呢?其實只要仔細看看master.dbo...

SQL裡中儲存過程和觸發器,如何建立

觸發器是一種特殊的儲存過程,2.觸發器是在對錶進行插入 更新或刪除操作時自動執行的儲存過程 3.觸發器通常用於強制業務規則 4.觸發器是一種高階約束,可以定義比用check 約束更為複雜的約束 5.可執行複雜的sql語句 if while case delete 觸發器 insert 觸發器 upd...