将 MySQL 备份(转储脚本)转换为 MS SQL?

将 MySQL 备份(转储脚本)转换为 MS SQL?

我有mysqldump一个相当大的(按手动操作衡量)数据库的输出,保存在一个文本文件中。有人知道使用它在 MS SQL 中构建数据库的(免费)方法吗?我专门使用 SQL Server 2008。

答案1

我用了类似这样的东西:

-- Path/Filename of inputfile for later use
declare @Out varchar(100)
set @out = 'c:\data\Test\TBL1245.dat'

-- Define a structurefile based on a predefined target-table for later use:
exec master..xp_cmdshell  'bcp DB4711.dbo.[TBL1245] format nul -t\t  -c -x -f "c:\data\Test\Config\TBL1245.xml" -T'

-- initialie the targettable:
truncate table   DB4711.dbo.[TBL1245]

-- Load the data:
INSERT DB4711.dbo.[TBL1245] 
exec('SELECT * 
FROM OPENROWSET (
    BULK ''' + @out + '''
    , FORMATFILE = ''c:\data\Test\Config\TBL1245.xml''
    , ROWS_PER_BATCH = 100
) as co_in
where KeyFLD is not NULL') -- a condition may be set here if needed

假设您在数据库(DB4711)中有一个表(TBL1245)来保存 datadumo 文件的所有文件。如果您必须更改分隔符,请参见 ms-bol 中的 bcp 参数。

答案2

您可以将该数据重新加载到 MySQL 并使用以下命令执行 mysqldump:

mysqldump -h...-u...-p...--compatible=mssql > MSSQL_Compatible_Data.sql

以下是 mysqldump --help --verbose 对此的说明

--compatible=name 将转储更改为与给定模式兼容。默认情况下,表以针对 MySQL
优化的格式转储。合法模式为:ansi、mysql323、mysql40、 postgresql、oracle、mssql、db2、maxdb、no_key_options、 no_table_options、no_field_options。可以使用 逗号分隔的多种模式。注意:需要 MySQL 服务器 版本 4.1.0 或更高版本。早期服务器版本会忽略此选项 。






试一试 !!!

相关内容