我有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 或更高版本。早期服务器版本会忽略此选项 。
试一试 !!!