SQL SERVER触发器问题
来源:互联网 发布:技术编程语言有哪些 编辑:程序博客网 时间:2024/05/17 01:18
定义一个触发器,为教师表TEACHER定义完整性规则“教授的工资不得低于4000元,如果低于4000 元,自动改为4000元”。
CREATE TRIGGER Insert_Or_Update_Sal BEFORE INSERT OR UPDATE ON Teacher FOR EACH ROW AS BEGIN IF(new.Job=‘教授’)AND(new.Sal<4000) THEN new.Sal:=4000; END IF; END;
课本上的例子是oracle数据库的写法,粘贴到sql server数据库上时会报错!百度上的许多改法都行不通,自己去图书馆查资料码了SQL SERVER的触发器的写法。
--新建teacher表CREATE TABLE TEACHER(TNO INT,TNAME CHAR(10),TJOB NVARCHAR(10),SALARY INT);--BEFORE级触发器ALTER TRIGGER insert_or_update_sal ON TEACHERINSTEAD OF UPDATE,INSERTASDECLARE @TNO INT,@TNAME CHAR(10),@TJOB NVARCHAR(10),@SALARY INTBEGINSELECT @TNO = TNO, @TNAME =TNAME, @TJOB = TJOB, @SALARY = SALARY FROM inserted;--从inserted表中取出修改的数据IF EXISTS(SELECT * FROM TEACHER WHERE TNO=(SELECT TNO FROM INSERTED)) AND ( @TJOB = N'教授') AND (@SALARY < 4000)--当修改表中教授工资时,如果小于4000,则修改成4000BEGINupdate TEACHER set SALARY = 4000 where Teacher.TNO = @TNO;ENDELSE IF EXISTS(SELECT * FROM TEACHER WHERE TNO=(SELECT TNO FROM INSERTED))--否则,则按原操作修改BEGINUPDATE TEACHER set TNAME=@TNAME, TJOB=@TJOB, SALARY = @SALARY WHERE TEACHER.TNO = @TNO;ENDELSE IF NOT EXISTS(SELECT * FROM TEACHER WHERE TNO=(SELECT TNO FROM INSERTED)) AND ( @TJOB = N'教授') AND (@SALARY < 4000)--当插入教授数据时,如果工资小于4000,则修改成4000BEGININSERT TEACHER VALUES(@TNO, @TNAME, @TJOB, 4000);ENDELSE IF NOT EXISTS(SELECT * FROM TEACHER WHERE TNO=(SELECT TNO FROM INSERTED))--否则,则按原操作插入BEGININSERT TEACHER VALUES(@TNO, @TNAME, @TJOB, @SALARY);ENDEND
阅读全文
0 0
- SQL SERVER触发器问题
- SQL Server触发器问题总结
- SQL Server触发器问题总结
- SQL Server触发器问题总结
- SQL Server触发器问题总结
- CSDN-SQL Server触发器问题总结
- 解决SQL Server触发器滥用问题
- 解决SQL Server触发器滥用问题
- [SQL Server] 多触发器执行问题
- sql server触发器的权限问题
- 【sql server】SQL触发器
- SQL-SERVER触发器
- SQL Server触发器
- Ms SQL Server 触发器
- sql server:触发器
- sql server 触发器
- SQL Server创建触发器
- SQL Server触发器
- NoSQL之【MongoDB】:DML和查询操作说明
- XML学习---认识XML及熟悉XML代码写法
- 51nod 1383 整数分解为2的幂
- Java程序员应该了解的10个面向对象设计原则
- Android(3)Activity
- SQL SERVER触发器问题
- linux修改默认的openjdk的方法
- 数据结构——哈夫曼编码
- Python入门:类与类的继承
- 写出优雅性能的JAVA程序必须遵守的35个原则
- 用通俗易懂的话说下hadoop是什么,能做什么
- Spring中使用外部的properties配置文件
- TeamTalk源码分析(四) —— 服务器端db_proxy_server源码分析
- babeLua配置