怎么把mssql改为mysql

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么把mssql改为mysql相关的知识,希望对你有一定的参考价值。

mssql与mysql无论是功能上、语法和内置函数等方面都有很大的区别,将mssql数据库转为mysql数据库,一般只能根据原本数据库对象如数据结构、存储过程、自定义函数等的定义,以mysql的语法和方式重新定义,工作量可能会是巨大和复杂的,然后再将mssql数据表数据导出为txt文件,重新定义好的mysql数据库再从txt文件导入数据,当然数据导入工作也可以通过应用程序编程的方式实现高效数据导入。

我不知到市面是否存在mssql和mysql之间的转换工具,但是由于数据库管理系统和应用的复杂性,个人认为,不同厂商数据库间实现完全的自动转换几乎是一个无法完成的任务。
参考技术A 1.导表结构
使用MySQL生成create脚本的方法。找到生成要导出的脚本,按MySQL的语法修改一下到MySQL数据库中创建该表的列结构什么的。

2.导表数据
在MSSQL端使用bcp导出文本文件:
bcp "Select * FROM dbname.dbo.tablename;" queryout tablename.txt -c -Slocalhostdb2005 -Usa
其中""中是要导出的sql语句,-c指定使用t进行字段分隔,使用n进行记录分隔,-S指定数据库服务器及实例,-U指定用户名,-P指定密码.
在MySQL端使用mysqlimport 导入文本文件到相应表中
mysqlimport -uroot -p databasename /home/test/tablename.txt
其中-u指定用户名,-p指定密码,databasename指定数据库名称,表名与文件名相同。本回答被提问者采纳

mssql 的一张表中有100000条数据,如何用mssql语言将这100000条数据平均分到10张表中

declare @i int
select @i=1
while @i<11
begin
select * into @i from tcarinfo where id%10= @i
@i++

为什么我用这个程序来做的时候,会提示“第 5 行: '@i' 附近有语法错误。”呢?
不才最近才开始学习mssql数据处理方面的东西,请高手勿笑话,不吝赐教。

参考技术A sql语句中除了表变量,在语句中不可以用变量作为表名
你可以用动态sql执行,即exec(@sql)
用变量@sql里面拼接sql语句把@i当做字符串拼接进去
参考技术B declare @i int,@sql varchar(100)
set @i=1
while @i<11
begin
set @sql='select * into ['+cast(@i as varchar(2))+'] from tcarinfo where id%10='+cast(@i as varchar(2))
exec (@sql)
set @i=@i+1
end本回答被提问者采纳

以上是关于怎么把mssql改为mysql的主要内容,如果未能解决你的问题,请参考以下文章

mssql的exec怎么才能把结果赋值给变量?

Visual Basic 需要从 MySQL 更改为 MSSQL

使用别名访问MSSQL Express

怎么快速迁移数据从 MSSQL 到 MySQL

MSSQL查询回显列之间用逗号分隔开怎么操作?

Mssql2008 R2自动备份数据库出现错误