今天练习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触发器之间的差别的更多相关文章

  1. 异构关系数据库(Sqlserver与MySql)之间的数据类型转换参考

    一.SqlServer到MySql的数据类型的转变 编号 SqlServer ToMySql MySql 1 binary(50) LONGBLOB binary 2 bit CHAR(1) bit ...

  2. MySql与SqlServer的一些常用用法的差别

    MySql与SqlServer的一些常用用法的差别 本文为转载 本文将主要列出MySql与SqlServer不同的地方,且以常用的存储过程的相关内容为主. 1. 标识符限定符 SqlServer [] ...

  3. SQLServer和MySQL job和 event定时器的差别

    SQLServer和MySQL job和 event定时器的差别

  4. 你搞懂 ORACLE、 SQLSERVER、MYSQL与DB2的区别了吗

    ORACLE. SQLSERVER.MYSQL与DB2的区别--平台性:    Oracle.MYSQL与DB2可在所有主流平台上运行:    SQL Server只能在Windows下运行: --安 ...

  5. 【转】mysql触发器的实战(触发器执行失败,sql会回滚吗)

    1   引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程 ...

  6. .NET程序迁移到Mysql的极简方案——让GGTalk同时支持Sqlserver与mysql全程记录!

    园子里的这个GGTalk,咱们前前后后用它移花接木做的IM项目也不下三四个了.初次入手的时候,洋洋代码,多少感觉有些难以把握.不过一来二去,理清了头绪,也就一览无余了.相信跟我们一样想要利用GGTal ...

  7. 猎八哥浅谈MYSQL触发器

    什么是MYSQL触发器,我们先了解一下触发的意思.触发的字面意思是指因触动而激发起某种反应. MYSQL必知必会中对触发器的解释是:MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于 B ...

  8. 在项目中迁移MS SQLServer到Mysql数据库,实现MySQL数据库的快速整合

    在开发项目的时候,往往碰到的不同的需求情况,兼容不同类型的数据库是我们项目以不变应万变的举措之一,在底层能够兼容多种数据库会使得我们开发不同类型的项目得心应手,如果配合快速的框架支持,那更是锦上添花的 ...

  9. mysql触发器trigger 实例详解

    mysql触发器trigger 实例详解 (转自 https://www.cnblogs.com/phpper/p/7587031.html)   MySQL好像从5.0.2版本就开始支持触发器的功能 ...

随机推荐

  1. LeetCode题目:Best Time to Buy and Sell Stock

    原题地址:https://leetcode.com/problems/best-time-to-buy-and-sell-stock/ 解决方法:动态规划,minimun存储的是当前价格中最小的. c ...

  2. NSAttributedString设置行间距,间接设置了uilabel的行间距

    假设有UIlabel实例:_testLabel NSString * testString = @"明月当空,隐隐约约听到低吟,似有若无.面对大千世界的奢华糜烂,还不如在这一方小城,静静品一 ...

  3. Spring 应用外部属性文件 配置 context 错误

    在Spring配置文件中出现通配符的匹配很全面, 但无法找到元素 'context:property-placeholder' 的声明这个错误,其实主要是我们在引入命名空间时没有正确引入它的DTD解析 ...

  4. lua string库

      --lua中字符串索引从前往后是1,2,……,从后往前是-1,-2……. --string库中所有的function都不会直接操作字符串,只返回一个结果. -------------------- ...

  5. python实现测试中常用的脚本(待完善)

    一. Python操作MySQL数据库,简单的增删改查 # coding=utf-8 ''' Created on 2015年5月12日 @author: Administrator ''' impo ...

  6. 配置Nginx防止直接用IP訪问Webserver

    看了非常多Nginx的配置,好像都忽略了ip直接訪问Web的问题.这样理论上不利于SEO优化,所以我们希望能够避免直接用IP訪问站点.而是域名訪问.详细怎么做呢.看以下. 官方文档中提供的方法: If ...

  7. 【Python web自动化】之读取配置文件参数,利用cookie返回值进行跳过验证码进行登录操作

    当进行Python的Web自动化时,会涉及到验证码问题,该如何跳过执行呢,下面请看代码: 1.首先新建配置文件*.ini格式 config.ini [db] #基础地址: baseurl = http ...

  8. 【JMeter4.0学习(六)】之逻辑控制器说明

    主要demo例子在: 链接: https://pan.baidu.com/s/1OFdsrNG7PTOYQ8TdjiVtBQ 密码: tkd2 汇总参考文档:<Jmeter之逻辑控制器(Logi ...

  9. Java中的使用了未经检查或不安全的操作(类前加:@SuppressWarnings("unchecked"))

    Java中的使用了未经检查或不安全的操作 如此解决就可以了 类前面加@SuppressWarnings("unchecked") @SuppressWarnings("u ...

  10. Linux进程间通信(四) - 共享内存

    共享内存的优势 采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝.对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只 ...