sqlserver 转 mysql的问题

cqq 2010-05-21 06:17:09
我们的系统是 asp.net + sqlserver2005 开发的,
现在想把数据库迁移到 mysql 上来。

我看了一下相关的文章,发现 sqlserver 和mysql在数据类型上有些差别,
另外,我们的系统用了一些 用户自定义函数 和大量的存储过程,
可能这又是一个噩梦吧。

我们就需要再做一个 mysql的数据访问层,
然后里面的一些sql语句,存储过程什么的都要挨个调整,

但是这样一来,以后要维护系统,修改或者扩展功能就要维护两个数据访问层,
写两遍sql,
这样有些太麻烦了。

我想问的是,
能否把 tsql 和 mysql统一起来,
写出来的sql语句两边都能用?

或者,像我这样的问题,有没有什么好的解决办法?
已有的代码是可以估算出工作量的,主要是以后的维护工作怎么能尽量少?

谢谢大家
...全文
516 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kofkyoli 2011-06-08
  • 打赏
  • 举报
回复
我从sqlserver转到mysql上了,不过主键和视图没有了。150张表倒是全部转过去了
tbc168 2011-01-25
  • 打赏
  • 举报
回复
我也在干相同的事情 ,难道没有一个开源项目专门 把 T-SQL 转换 成 MySQL 语句的么?

期待 ...........

今天快被mysql玩死

T-SQL -> MySQL

T-SQL -> MySQL

.
.
.
.
.
dawugui 2010-05-22
  • 打赏
  • 举报
回复
换了数据库了,原来的好多东西不能用的.

不过,你从sql server转oracle我还可以理解.
从sql server转mysql有点得不偿失的感觉.
zouyx317 2010-05-22
  • 打赏
  • 举报
回复
楼主我和你同命啊,我对MySql也不熟,最近也在做和你同类型的事。
我公司也是为了费用问题,把数据库要转到MySql,烦拉!
Ms Sql很多功能在MySql里不太好实现
好在我去公司之前,已有同事把表结构、存储过程、触发器等转得差不多了,哈哈!
他们也是一个一个手动转的。
有几个在Ms Sql里很容易的事情,在MySql(V5.1)完成不了的如:
最烦的,临时表只能Select 一次,
函数不能递归,
Select ... into var from ... 只能对结果集为一条记录的执行,多了报错,以后写交叉报表
就比较麻烦。
希望你找到好的解决方法,拿出来分享一下。
Rotel-刘志东 2010-05-22
  • 打赏
  • 举报
回复
不能够转换呀!
weiki516 2010-05-22
  • 打赏
  • 举报
回复
ASP.NET+SQLSERVER 最佳组合
PHP+MYSQL 最佳组合
JAVA+ORACLE 最佳组合
楼主想转话 部分sql肯定会有所改动的 不然就不会有这么多数据库了
永生天地 2010-05-21
  • 打赏
  • 举报
回复
查到的资料

1 可以生成标准的.sql文件,在mysql下导入

mysql -h localhost -u root -p1234 < c:/123/123.sql

mysql -h localhost -u root -p1234 < c:\\123\\123.sql


2 到www.mysql.com上下个myodbc,装以下这个驱动,然后在mssql的enterprise manager中选择表,点右键选择export data,然后利用mysql 的ODBC接口操作即可


--------------------------------------------------------------------------------------
SQL导出到MYSQL StarryNightIceTea(原作)

从sql导出到mysql的方法很多,现介绍一种无需编程,直接利用sql和mysql里的图形界面
进行导入导出的简单方法。
前提是已经安装了sqlserver客户端和mysql的图形界面管理工具phpmyadmin。
在控制台根目录下打开sqlserver企业管理器,新建sqlserver组,根据自己的情况进行选择;然后新建sqlserver 注册,进行对sqlserver的连接。准备妥当后,下面就开始了:
首先打开数据转换服务,新建包,打开DTS界面,在连接中选择数据源进行配置。再选择将要转换到的目的文件,这里我选的 Textfile(destination),选择好文件的存放位置之后,我们来新建一个任务。这里我们只选择转换数据任务,将带有“选择源连接”“选择目的连接”的鼠标分别选中数据源和目的之后,我们对新生成的连接进行定义,在其属性中将源,目的,转换依次定义。
执行任务,提示成功。保存任务。
然后在新建的任务上导出数据,有向导提示,其中一项选择“从源数据库复制表和视图”。
这一步已经把数据导出到目的文件中。
下一步在mysql中新建表,与将要导入的结构保持一致时,直接选取“从文本文件中提取数据,插入到数据表:”,将选项添好后,“发送”就可以了,浏览一下,数据已导入了。若要导入的表已经存在,且属性名也不同,这时就先建一个与要导入的数据相同结构的表并导入数据(按刚才的进行就可以了),然后在mysql中导出“数据和结构”,得到sql语句,将其在文本文件中编辑,
利用文本编辑器的替换功能,将表名修改,列名加入,最后将其粘贴在要导入表的执行sql语句的地方,执行一下,数据便导入了。
若过程中出现错误,请仔细检查配置的选项,确保正确。


htl258_Tony 2010-05-21
  • 打赏
  • 举报
回复
没法做到直接,顶多开发一个代码转换程序,但这估计需要长久的期待。
  • 打赏
  • 举报
回复
不可能!

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧