原文:http://www.cnblogs.com/andrew-blog/archive/2011/12/03/SQL_mss2sql.html#3242272

工具:http://files.cnblogs.com/files/newsea/mss2sql.rar

能把表,数据导过去。MySql挺狠的。

视图,函数,存储过程,导不过去。

另外,MySql不支持匿名块,批量操作,声明变量,只能写到存储过程或函数。

MsSql => MySql

1. 去除[dbo].   去除  空格dbo.

2. [] =》 ``

3. 去除@, MySql定义变量不用@, 但是可以不定义变量直接使用@变量

4. if 格式更拘束, end if 后面必须加;

5. 自定义函数或自定义存储过程前添加: delimiter $$

6. 函数和存储过程 定义头部去除 as

7. 函数中 declare 必须定义到最前面。 且 declare 没有 as

8. cast 函数

  Cast(xxx as int) 会出错,=》 cast( xxx as signed)  或 cast( xxx as unsigned) ;

  cast(xxx as varchar(30)) 会出错 ,=》 cast(xxx as char(30));

9. 数据类型及系统函数: getdate() => now() , top 1 => limit 0,1

10. 即使没有参数,可不能省略 ()

11. proc =》 procedure

12. exec  p c1,c2 => call  p(c1,c2)

13. 动态执行SQL:

  不能用nvarchar,

declare sqlStr varchar() ;

set sqlStr = '很长的SQL';

set @sqlStr = replace(sqlStr,'{CorpID}', CorpID ) ;

prepare smt from @sqlStr ;
execute smt ;
DEALLOCATE PREPARE smt;

第三行。 一定要定义一个临时变量才能被 prepare ,我用了 @sqlStr , 它不是 sqlStr.

14. select 给变量赋值 : select @id = Id,@name= name from tab where Id=1 ; => select Id,Name into id,name  from tab where Id = 1 ;

15. 退出存储过程的方法 :没有 return , exit,quit 之类的。

  在定义存储过程头部 begin 前添加标签 :  bn: begin   ,在需要退出的地方,执行: leave bn;

16.避免变量名和列名重名。

delimiter $$
create procedure atest(Id int)
begin
select * from S_City where Id = Id ;
end;
$$ call atest( 3) ;

并不会返回 Id 为3 的记录。

17.

SqlServer=>MySql的更多相关文章

  1. 从SQLSERVER/MYSQL数据库中随机取一条或者N条记录

    从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 USE [sss] GO ,NAME ) DEFAULT ...

  2. C#操作SqlServer MySql Oracle通用帮助类Db_Helper_DG(默认支持数据库读写分离、查询结果实体映射ORM)

    [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系型数据库,在使用了多年的Sql_Helper_DG后,由于项目需 ...

  3. Oracle,sqlserver,mySQl的区别和联系:

    1.日期处理方式 2.对保留字和关键字的处理方式: Oracle,sqlserver,mySQl的保留字不可以用作列字段,关键字可以,但他们对关键字的处理方式又不同: Oracle:关键字作为列时:用 ...

  4. C#操作SqlServer MySql Oracle通用帮助类

    C#操作SqlServer MySql Oracle通用帮助类 [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系 ...

  5. C#------EntityFramework实体加载数据库SQLServer(MySQL)

    一.SQLServer数据库创建表Company,包含ID,CName,IsEnabled三列 二.(1)VS新建一个DXApplication工程,名为CompanyManageSystem (2) ...

  6. oracle,sqlserver,mysql 命令行 开启、关闭所需要的服务

    ORACLE需要开启的服务   需要启动的服务:   口令: 启动Oracle 11g服务: (下面的可以作为bat 脚本,直接运行便可以不用去自己去启动和关闭服务了.) @echo off @ EC ...

  7. jdbc连接sqlserver,mysql,oracle

    class xxx{ private static String port = "1433"; private static String ip = "192.168.2 ...

  8. oracle,sqlserver,mysql常见数据库jdbc连接

    发现JDBC连接字符串总是容易忘记,特此整理一下常用的几种数据的连接 ORACLE: /** * ORACLE * */ public static Connection getOracleConne ...

  9. java JDBC链接sqlserver/mysql/oracle

    今天初学数据库的一些简单创建数据库和表,并进行简单的查询,插入. 接下学习的就是java工程中怎么链接数据库呢.主要的方法和用到的类如下. 切记,mysql需要的jar包 mysql-connecto ...

  10. hibernate4中oracle,sqlserver,mysql数据库的sql方言配置(SQL Dialects)

    hibernate4中oracle,mysql,sqlserver数据库的sql方言配置(SQL Dialects) 数据库类型 Hibernate sql方言 DB2 org.hibernate.d ...

随机推荐

  1. innobackupex的安装

    innobackupex的安装方法有3种: 通过RPM包安装: 通过源码包安装: 通过二进制包安装. 第3种方法最简单,这里只介绍它.以下是安装步骤: 打开官方下载链接: Version默认是最新版本 ...

  2. python类——黑板客老师课程学习

    1.基本语法 class class_name(base_class):  base_class是它继承的父类 class_var def methods(self,args): statements ...

  3. Scanner键盘录入(欢迎交流)

    一:练习 判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"."abba"."aaa"." ...

  4. gdb调式

    1.PCB版的相应目录下执行命令: gdbserver 10.18.13.84:5555 DvdPlayer 2.linux操作系统执行:(如果是android找到android项目路径下的gdb)m ...

  5. 1032 - A-B 组合数学

    http://www.ifrog.cc/acm/problem/1032 1032 - A-B Time Limit:1s Memory Limit:128MByte Submissions:680S ...

  6. javascript 网页运行代码效果

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  7. [转] linux虚拟带库操作笔记

    原文来自:“王旺的书房” ---- http://blog.itpub.net/271063/viewspace-1059840/ 分类: Linux 查看设备[root@node1 ~]# lssc ...

  8. 和为S的两个数字

    /*  * 和为S的两个数字  * 题目描述  * 输入一个递增排序的数组和一个数字S,在数组中查找两个数  * 使得他们的和正好是S,如果有多对数字的和等于S,输出两个  * 数的乘积最小的.  * ...

  9. Daily Scrum 12.12

    今日完成任务: 解决文档上传时TagAssociation的建立异常问题:解决问题页面标签点击卡死的BUG. 发现问题: 文档下载量浏览量显示不正确: 文档打开时全都是同一个PDF: 右侧最佳资源的显 ...

  10. 11 个 Linux 上最佳的图形化 Git 客户端

    Git是软件开发和若干其他版本控制任务免费和开源的分布式版本控制系统.它被设计用来以应付一切从小到非常大的项目,基于速度,效率和数据完整性. Linux用户主要通过命令行管理Git,不过,一些图形用户 ...