总体来说,sql sever和Mysql的存储过程的思路都是一样的,但是在语法和结构上还是有很大的区别的。
1. 在mysql中写存储过程所有的dbo都要去掉。
2. 每一个sql语句后面都需要加上;否则报错;
4. 再说参数,在MSSQL中我们一般会这么定义参数

1
2
3
4
CREATE PROCEDURE PROC_ST
(@operator varchar(300),
@ProcDate datetime,
@ErrorLog varchar(8000) OUTPUT)

但是在mysql中这种格式是不可以的;
首先在mysql中输入参数是in来表示,输出参数是out表示,如果不写,默认是in,其次在mysql中是没有@符号的,所以所有的@符号都要去掉
上述存储过程改写成mysql的话

1
2
3
4
5
6
create PROCEDURE PROC_ST
(
in operator varchar(300),
in ProcDate datetime,
out ErrorLog varchar(8000)
)

5.关于时间的问题
5.1 获取时间格式
在MSSQL中我们来获取时间一般用CONVERT来表示,例如

1
set@YearMonth = CONVERT(varchar(6),@ProcDate,112);

这句话的意思就是获取时间的年月并且格式是yyyymm的,112代表的是一种格式;

但是在mysql中我修改的时候却一直报错,所以我换了一种写法

1
year(now())*100+month(now())

这样就可以了;
5.2
转换时间格式
同样的,在MSSQL中用CONVERT(varchar(6),参数,112) = @YearMonth 就可以使用,但是在MYSQL中我用的是cast强制转换才可以

1
2
3
4
CAST(
REP.FACT_DATE
AS
CHAR(6) )

6.

关于if的使用
在MSSQL中用
If()
Begin
程序片段
End
Else
Begin
程序片段
End就可以;
但是在Mysql中是不认的,if的后面必须有then,而且每一个else if的后面必须有;作为结束符号,否则不管你怎么调试也是过不去的
下面的是我改写的一个函数,比较简单,主要是比较一下语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
CREATE FUNCTIONLOAN_PERIOD
(
begindate int,
enddate int
)
RETURNSvarchar(8000)
BEGIN
if(enddate-begindate <= '3')
then
return '10';
end if;
if(enddate-begindate>'3' andenddate-begindate <= '6')
then
return '20';
end if;
if(enddate-begindate>'6' andenddate-begindate <= '12')
then
return '30';
end if;
return '40';
END

7.关于在时间的增加或者减少
我们一般在MSSQL中想得到日期的上一个月一般会这么写

1
CONVERT (VARCHAR(6),DATEADD ("Month", -1, @ProcDate), 112)

DATEADD是MSSQL的内置函数;

但是在mysql中是没有这个函数的,那我们应该怎么办呢,别着急,在mysql中有DATE_SUB函数,基本上也能满足我们的需求,上面这句话改写完成后

1
CAST(DATE_SUB(ProcDate,INTERVAL1 MONTHAS CHAR(6))

8.关于表变量

在MYsql中时不存在表变量这个概念的,但是却可以用临时表来代替,在Mysql中我们创业临时表一般用
CREATEtemporary
table tempTotal 来进行创建,还有一点好处,就是临时变量在存储过程执行完会自动释放,不会占用大量内存;
9.在MSSQL中会常常用到下面这个声明
DECLARE@temp
VARCHAR (MAX);
但是在mysql中没有max这个概念,我一般会用varcahr(8000)来替代,网上众说纷纭,说varchar最大值多少的都有,我没试验过,改写的时候慎用。
10.在MSSQL中金融产品化会常常用到下面这个声明
DECLARE@temp
VARCHAR (MAX);
但是在mysql中没有max这个概念,我一般会用varcahr(8000)来替代,网上众说纷纭,说varchar最大值多少的都有,我没试验过,改写的时候慎用。
11. 在mysql中没有isnull函数,所以我们用ifnull来代替,用法一样;
以上就是我改写的过程中碰到的一些问题,希望对大家能有所帮助吧!

sql Sever的存储过程转换为mysql的相关推荐

  1. SQL Sever数据库存储过程

    一.背景介绍 1.遇到存储过程 回顾之前知识,使用在当下(毕业设计) 2.了解周边知识 二.思路&方案 1.了解存储过程定义.语法.种类 2.存储过程有什么优缺点 3.存储过程与触发器和函数的 ...

  2. sql server转mysql工具下载_SQL Server转换为MySQL工具推荐(Mss2sql)

    SQL Server转换为MySQL工具,用了一下 感觉蛮不错的. 分享上来,同时也以便记录下来以后自用. 工具名称:Mss2sql 来个操作流程: 1.首先下载工具 用户名与密码都是www.linu ...

  3. SQL存储过程(MySQL)

    存储过程的原理 一般编写SQL语句时会遇到 多张表添加数据 的情况,如果将主表添加信息的主键作为外联的联系,如ID列,在MySQL中是自动生成的,则无法定义两次select来进行添加. 但是,SQL语 ...

  4. kettle的连接与使用——从SQL sever中抽取数据至MYSQL

    示例:将SQL sever中test库的student表中的数据抽取至MySQL 如下:MYSQL中student表无数据,且需要获取数据的字段分别为sno.sname.sex.class(我们要将S ...

  5. mysql workbench导入mdb_如何将MDB(Access)文件转换为MySQL(或纯SQL文件)?

    你想转换mdb到mysql(直接传输到mysql或mysql转储)? 尝试一个名为访问MySQL的软件. 访问MySQL是一个小程序,将Microsoft Access数据库转换为MySQL. 向导界 ...

  6. qt调用mysql调用了存储过_Qt调用Server SQL中的存储过程

    Server SQL中的存储过程如下: CREATE procedure PINSERTPC @pcnum int, @pcname varchar(50), @pctype int, @ipaddr ...

  7. sql server 转换为mysql_SqlServer转换为Mysql

    昨天顺利把MySQL成功安装后,正准备着手把原来项目中的SQL SERVER数据库改为MYSQL数据库,可大量的表结构和表数据如要手动写,那就...... 接下来就是各种百度.谷歌.问先驱等,可得到的 ...

  8. SQL Server 迁移数据到MySQL

    一.背景 由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据转移到MySQL:由于涉及的表比较多,所以想在MySQL中生成对应 ...

  9. [翻译]使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)

    原文地址:http://www.dotnetbips.com/articles/70eff218-3da0-4f6f-8f8d-eeea65193f2c.aspx[原文×××] [翻译]使用C#创建S ...

  10. Entity Framework Core 执行SQL语句和存储过程

    无论ORM有多么强大,总会出现一些特殊的情况,它无法满足我们的要求.在这篇文章中,我们介绍几种执行SQL的方法. 表结构 在具体内容开始之前,我们先简单说明一下要使用的表结构. public clas ...

最新文章

  1. Button的使用(十三):设置可见性
  2. 俄罗斯方块新增行算法:不拘一格编程序之二
  3. 看图识物_看图识物:下面图里是什么植物呢?请朋友们评论区留言
  4. Windows10系统Python2.7通过Swig调用C++过程
  5. P1081-开车旅行【倍增,链表,dp】
  6. 专题导读:新基建环境下的数据资产价值评估与定价
  7. MS CRM如果在Tab页中有Iframe选项,原来速度不慢,突然速度变慢
  8. win10 wsl和wsl2使用总结
  9. [转载]ASPNET MVC表格呈现利器:MvcContrib.UI.Grid
  10. indesign教程,了解基本文本格式
  11. 计算机中丢失xvidcore.dll,找不到xvidcore.dll怎么办?
  12. c语言自动安装软件,VC++(c语言程序下载安装)
  13. 听完吴声的演讲,我感觉智商梗阻了
  14. E路航LH950N更换电池全程图解
  15. 关于把Excel转换成word的经验
  16. c语言使用openssl库进行RSA加解密,并使用OAEP SHA256填充方式
  17. 用计算机制作动画,什么是计算机动画制作
  18. python写微信小程序源码示例_python实现微信小程序用户登录、模板推送
  19. 机器学习/算法工程师(含大量面经) --1
  20. 基础集合论 第一章 集合与集合的运算

热门文章

  1. 第二阶段冲刺(第十天)
  2. IT部门域事件与业务分析
  3. win10远程桌面配置
  4. sublime插件CSS转rem配置
  5. Oracle数据库索引使用及索引失效总结
  6. Unity PlayerPrefs类进行扩展(整个对象进行保存)
  7. 设置数据库及表的默认字符集
  8. SqlServer2008基础知识:安全与权限
  9. Windows 下USB被禁用
  10. C# 线程thread