这个触发器如何编写(sql server 2000)

来源:百度知道 编辑:UC知道 时间:2024/05/29 08:34:07
有表tblleave 和tblemployee
现要编写一个触发器:员工请假申请被否决时,只前其年假的总时间已经被减少,否决完成后应该相应增加其年假总时间

help~~~
表 tblEmployee 定义如下:
名称 类型 可否为空 说明 备注
EmployeeID int 4 否 员工编号 自动生成
Name nvarchar 50 否 员工姓名
LoginName nvarchar 20 否 员工登录名 建议为英文字符,且与姓名不同
VacationRemain int 4 可 员工剩余假期 小时数
主键
表 tblEmployee 的主键是EmployeeID 字段,类型为 int,设置自动增量。
表 tblEmployee 的外键有EmployeeLevel,类型为int,用于与表tblEmployeeLevel中的EmployeeLevel字段关联。

表tblLeave定义如下:
名称 类型 可否为空 说明 备注
LeaveID int 否 请假申请编号
EmployeeID int 否 员工编号
SubmitTime datetime 否 提交时间
StartTime datetime 否 开始时间
EndTime datetime 否 结束时间 大于开始时间
Reason nvarchar 100 可 理由说明
TypeID int 可 类型编号
Hours float 否 小时数
Status nvarchar 20 可 申请状态 取值范围可以是:“已提交”、“已取消”、“已批准”、“已否决”
ApproverID int 4 可 审核者编号
DenyReason nchar 100 可 拒绝申请的理由
主键
表tblLeave的主键是LeaveID字段,类型为 int,设置自动增量。

判断怎么写?

if exists(select*from sysobjects where name='tblleave')
drop trigger tblleave
go
--创建触发器
create trigger tblleave
on transInfo
for insert
as
declare @type varchar(20)
select @ from inserted
select @ from tblemployee where
............................................
你表里有些什么字段啊?主外键关系是什么?有那些约束?问题不完整所以答案也写不完整,你自己把字段加进去再写个判断就OK了