请问这个触发器怎么写?(在线等……)
各位,想在某个表删除,修改记录以后判断一下列"工资"是否小于0如果小于0则给它置为0,
应该怎么做?
表名:工资表
字段名:工资
小弟谢各位了!!!!!
问题点数:10、回复次数:6Top
1 楼seai(唯一)回复于 2006-10-04 16:29:47 得分 10
USE pubs
IF EXISTS (Select name FROM sysobjects
Where name = 'MYTRI' AND type = 'TR')
Drop TRIGGER MYTRI
GO
Create TRIGGER MYTRI
ON YOURTABLENAME
FOR Update
AS
DECLARE @GZ INT
SELECT @GZ=GZ FROM INSERTED
IF @GZ<0
BEGIN
RAISERROR ("你的工资数小于0,系统自己更改为0",50009, 16, 10)
UPDATE YOURTABLENAME SET GZ=@GZ
END
GO
记得以后给分多点哦,我没分了,需要多点分,呵呵!
Top
2 楼hanxianlong(!!!!!)回复于 2006-10-04 16:30:50 得分 0
谢了楼上的!马上给分!Top
3 楼seai(唯一)回复于 2006-10-04 16:48:39 得分 0
忘了一关键地方,不好意思啊
UPDATE YOURTABLENAME SET GZ=@GZ WHERE ID=@IDTop
4 楼seai(唯一)回复于 2006-10-04 16:50:37 得分 0
重写一下
USE YOURDATABASE
IF EXISTS (Select name FROM sysobjects
Where name = 'MYTRI' AND type = 'TR')
Drop TRIGGER MYTRI
GO
Create TRIGGER MYTRI
ON YOURTABLENAME
FOR Update
AS
DECLARE @GZ INT,@ID INT--保存操作列的值和ID,ID指表中的唯一标识列
SELECT @GZ=GZ FROM INSERTED
IF @GZ<0
BEGIN
RAISERROR ("你的工资数小于0,系统自己更改为0",50009, 16, 10)
UPDATE YOURTABLENAME SET GZ=@GZ WHERE ID=@ID
END
GO
Top
5 楼yjkarmon()回复于 2006-10-04 18:50:06 得分 0
create trigger tr_name on 工资表
for delete, update
as
update 工资
set 工资 = 0
where 工资 < 0
Top
6 楼hanxianlong(!!!!!)回复于 2006-10-04 19:05:02 得分 0
yjkarmon() :
谢过!Top




