其 他 回 答共3條
1樓
語(yǔ)法格式:
create trigger 觸發(fā)器名
on 表名
for update或delete或insert
as
SQL語(yǔ)句
---------
其實(shí)也是一種存儲(chǔ)過(guò)程,當(dāng)你執(zhí)行update或delete或insert語(yǔ)句時(shí),觸發(fā)器就被執(zhí)行了,不象存儲(chǔ)過(guò)程是手動(dòng)執(zhí)行的.清楚了嗎?
2樓
都寫(xiě)得很清楚了啊,你可以找一個(gè)實(shí)例看看
create trigger 觸發(fā)器名
on 表名
for update或delete或insert '觸發(fā)動(dòng)作,就是對(duì)表的操作,如更新,刪除,插入之類(lèi)就會(huì)觸發(fā)
as
寫(xiě)SQL(更新,刪除,插入)語(yǔ)句,這個(gè)你應(yīng)該會(huì)了吧
3樓
USE [student]
GO
/****** 對(duì)象: Trigger [dbo].[sut1] 腳本日期: 02/10/2009 18:16:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--測(cè)試的觸發(fā)器
ALTER trigger [dbo].[sut1]
on [dbo].[stuInfo]
for insert, delete,update
as
declare @cnt int
--判斷是不是插入
select @cnt =count(1) from inserted
if @cnt>0
begin
set identity_insert dbo.stuinfo2 on
insert into stuinfo2(sid,sname,ssex,sage,sdata,sphone,spid)
select sid,sname,ssex,sage,sdata,sphone,spid from inserted
set identity_insert dbo.stuinfo2 off
end
--判斷是不是刪除
select @cnt=count(1) from deleted
if @cnt>0
begin
delete from stuinfo2 where sid in (select sid from deleted)
end
if update(sname)
begin
select sid into #temp from stuinfo where sid in (select sid from deleted)
set identity_insert dbo.stuinfo2 on
insert into stuinfo2(sid,sname,ssex,sage,sdata,sphone,spid)
select sid,sname,ssex,sage,sdata,sphone,spid from stuinfo where sid in (select sid from #temp)
set identity_insert dbo.stuinfo2 off
drop table #temp
end
--觸發(fā)器分前觸發(fā) insert of 與 after
------------------條件
/*有兩個(gè)表 stuinfo 與 stuinfo2 表結(jié)構(gòu)如下
當(dāng)對(duì)stuinfo 表進(jìn)行操作時(shí),同時(shí)stuinfo2也發(fā)生變化
USE [student]
GO
/****** 對(duì)象: Table [dbo].[stuInfo] 腳本日期: 02/10/2009 18:17:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[stuInfo](
[sid] [int] IDENTITY(1,1) NOT NULL,
[sname] [nchar](10) NULL,
[ssex] [nchar](2) NULL,
[sage] [int] NULL,
[sdata] [datetime] NULL,
[sphone] [nchar](15) NULL,
[spid] [nchar](10) NULL
) ON [PRIMARY]
*/