请问这个触发器怎么写?(在线等……)

hanxianlong 2006-10-04 04:10:30
各位,想在某个表删除,修改记录以后判断一下列"工资"是否小于0如果小于0则给它置为0,
应该怎么做?
表名:工资表
字段名:工资

小弟谢各位了!!!!!
...全文
125 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanxianlong 2006-10-04
  • 打赏
  • 举报
回复
yjkarmon() :
谢过!
yjkarmon 2006-10-04
  • 打赏
  • 举报
回复
create trigger tr_name on 工资表
for delete, update
as
update 工资
set 工资 = 0
where 工资 < 0
seai 2006-10-04
  • 打赏
  • 举报
回复
重写一下

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
seai 2006-10-04
  • 打赏
  • 举报
回复
忘了一关键地方,不好意思啊


UPDATE YOURTABLENAME SET GZ=@GZ WHERE ID=@ID
hanxianlong 2006-10-04
  • 打赏
  • 举报
回复
谢了楼上的!马上给分!
seai 2006-10-04
  • 打赏
  • 举报
回复
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

记得以后给分多点哦,我没分了,需要多点分,呵呵!

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧