Sqlserver与Mysql触发器之间的差别
今天练习sqlserver,一开始感觉应该像Oracle,Mysql语法差不多,但是经过一下午的奋战,才感觉原来这三个数据库就是有区别啊,
我原来学习触发器的时候用的是Mysql,感觉还行,但是今天采用的是sqlserver,就感觉差别就是很大了。
今天将部分代码展示给大家看看,
下面显示的是触发器用到的两个表
- --创建sc表
- CREATE TABLE [sc](
- [ScId] int NOT NULL,
- [SNo] int NOT NULL ,
- [CNo] int NOT NULL ,
- [Score] int DEFAULT NULL ,
- PRIMARY KEY ([ScId])
- );
- --添加履历表
- CREATE TABLE score_record (
- SrId int NOT NULL,
- SNo int NOT NULL ,
- CNo int NOT NULL ,
- OldScore int NOT NULL ,
- NewScore int NOT NULL ,
- UpdateTime datetime NOT NULL ,
- PRIMARY KEY (SrId),
- );
下面显示的是Mysql写的触发器
- --Mysql写的触发器
- --创建触发器,将修改前后的成绩插入到履历表
- DROP TRIGGER IF EXISTS `trigger_sr`;
- DELIMITER //
- CREATE TRIGGER `trigger_sr` AFTER UPDATE ON `sc`
- FOR EACH ROW BEGIN
- INSERT INTO score_record
- SET SNo = new.SNo,
- CNo = new.CNo,
- OldScore = old.Score,
- NewScore = new.Score,
- UpdateTime = NOW() ;
- END
- //
- DELIMITER ;
下面显示的是Sqlserver写的触发器
- --Sqlserver写的触发器
- --创建触发器,将修改前后的成绩插入到履历表
- CREATE TRIGGER trigger_sr
- on sc for update
- as
- declare @SNo int,@CNo int,@OldScore int,@NewScore int,@UpdateTime datetime
- BEGIN
- Select @OldScore=Score From Deleted;
- select @UpdateTime=getdate();
- Select @SNo=SNo,@CNo=CNo,@NewScore=Score From inserted;
- INSERT INTO score_record(SNo,CNo,OldScore,NewScore,UpdateTime)
- values(@SNo,@CNo,@OldScore,@NewScore,@UpdateTime)
- END
这个只是触发器之间的差别,像储存过程,自定义函数等一定还有很大的区别,不过,现在的感觉是学完一种数据库语言,其他的数据库学起来也是那样吧。
Sqlserver与Mysql触发器之间的差别的更多相关文章
- 异构关系数据库(Sqlserver与MySql)之间的数据类型转换参考
一.SqlServer到MySql的数据类型的转变 编号 SqlServer ToMySql MySql 1 binary(50) LONGBLOB binary 2 bit CHAR(1) bit ...
- MySql与SqlServer的一些常用用法的差别
MySql与SqlServer的一些常用用法的差别 本文为转载 本文将主要列出MySql与SqlServer不同的地方,且以常用的存储过程的相关内容为主. 1. 标识符限定符 SqlServer [] ...
- SQLServer和MySQL job和 event定时器的差别
SQLServer和MySQL job和 event定时器的差别
- 你搞懂 ORACLE、 SQLSERVER、MYSQL与DB2的区别了吗
ORACLE. SQLSERVER.MYSQL与DB2的区别--平台性: Oracle.MYSQL与DB2可在所有主流平台上运行: SQL Server只能在Windows下运行: --安 ...
- 【转】mysql触发器的实战(触发器执行失败,sql会回滚吗)
1 引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程 ...
- .NET程序迁移到Mysql的极简方案——让GGTalk同时支持Sqlserver与mysql全程记录!
园子里的这个GGTalk,咱们前前后后用它移花接木做的IM项目也不下三四个了.初次入手的时候,洋洋代码,多少感觉有些难以把握.不过一来二去,理清了头绪,也就一览无余了.相信跟我们一样想要利用GGTal ...
- 猎八哥浅谈MYSQL触发器
什么是MYSQL触发器,我们先了解一下触发的意思.触发的字面意思是指因触动而激发起某种反应. MYSQL必知必会中对触发器的解释是:MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于 B ...
- 在项目中迁移MS SQLServer到Mysql数据库,实现MySQL数据库的快速整合
在开发项目的时候,往往碰到的不同的需求情况,兼容不同类型的数据库是我们项目以不变应万变的举措之一,在底层能够兼容多种数据库会使得我们开发不同类型的项目得心应手,如果配合快速的框架支持,那更是锦上添花的 ...
- mysql触发器trigger 实例详解
mysql触发器trigger 实例详解 (转自 https://www.cnblogs.com/phpper/p/7587031.html) MySQL好像从5.0.2版本就开始支持触发器的功能 ...
随机推荐
- STL学习笔记(关联式容器)
Set和Multisets set和multiset会根据特定的排序准则,自动将元素排序.两者不同在于multisets允许元素重复而set不允许. 1.set和multiset的操作函数 生成.复制 ...
- Spring MVC 学习笔记 spring mvc Schema-based configuration
Spring mvc 目前支持5个tag,分别是 mvc:annotation-driven,mvc:interceptors,mvc:view-controller, mvc:resources和m ...
- iOS项目工程添加.a文件遇到的Dsymutil Error
将.a文件加入工程,很多教程讲的都是: 右键选择Add->Existing Files…,选择.a文件和相应的.h头文件.或者将这两个文件拖入XCode工程目录结构中,在弹出的界面中勾选Copy ...
- java清除所有微博短链接 Java问题通用解决代码
java实现微博短链接清除,利用正则,目前只支持微博短链接格式为"http://域名/字母或数字8位以内"的链接格式,现在基本通用 如果链接有多个,返回结果中会有多出的空格,请注意 ...
- redis 的安装与启动
1.redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Redis 是一个高性能的key-val ...
- ros之串口通信---imu
1.sudo apt-get install ros-kinetic-rosserial 或者sudo git clonegit://github.com/wjwwood/serial.git (开 ...
- Android Studio 2.0 正式版公布啦 (首次中文翻译)
Android Studio 2.0 公布了,添加了一些新特性: 1. 更加完好的 Instant Run 2. 更快的 Android Emulator 3.GPU Debugger Preview ...
- Python基础之函数与装饰器
阅读目录 一.为什么要使用函数 二.函数的定义与调用 三.函数返回值 四.函数的参数 五.本章小结 六.装饰器 一.函数流程图: 函数名的命名规则: 1.函数名必须由字母下划线数字组成,不能是关键字和 ...
- 高度平衡树 -- AVL 树
Scheme 的表达, 优雅. #lang scheme ( define nil '() ) ( define ( root tree )( car tree ) ) ( define ( left ...
- Viewer 是一款强大的 jQuery 图像浏览插件。
Viewer 是一款强大的 jQuery 图像浏览插件. 主要功能: 支持选项 支持方法 支持事件 支持触摸 支持移动 支持缩放 支持旋转 支持键盘 跨浏览器支持 链接: viewer的官方演示,及g ...