帮我看看我写的触发器

RobJack 2007-12-21 06:02:10
对职工表创建插入触发器(tri_ins_职工),确保插入数据时参照完整性,即职工表中的所在部门号必须取值于部门表中已有的部门号值或者为空。同时,该触发器还需要确保插入的年龄值处于16和60之间,即大于等于16,小于等于60
EMP //职工表名
EMPNO char(10) //职工号
ENAME char(20) //职工姓名
SEX char(2) //职工性别
YEARS int //职工年龄
DEPTNO char(10) //职工所在部门号

DEPT //部门表
DEPTNO //部门号
DNAME
PHONE

代码如下:

CREATE TRIGGER tri_ins
ON emp
FOR INSERT
AS
DECLARE @deptno_d char(10),
@years int
SELECT @deptno_d = dept.deptno, @years = years
FROM emp,dept

IF INSERT(deptno,years)
BEGIN
IF INSERTED.deptno <> @deptno_d AND INSERTED.deptno <> NULL OR INSERTED.years < 16 OR INSERTED.years > 60
BEGIN
RAISERROR ('插入的数据不符合格式')
ROLLBACK TRANSACTION
END
END
...全文
36 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
帅虫哥 2008-06-09
  • 打赏
  • 举报
回复
用 inserted表 查询即可

34,590

社区成员

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

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