Преобразовать резервную копию MySQL (сценарий дампа) в MS SQL?
У меня есть mysqldump
вывод довольно большой (по мере выполнения операций вручную) базы данных, сохраненной в текстовом файле. Кто-нибудь знает (бесплатный) способ использовать это для создания базы данных в MS SQL? Я специально использую SQL Server 2008.
2 ответа
Я использовал что-то вроде этого:
-- 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
Предполагая, что у вас есть таблица (TBL1245) в базе данных (DB4711) для хранения всех файлов вашего файла данных. если вам нужно изменить разделитель, смотрите в ms-bol параметры bcp.
You could reload that data back into MySQL and execute mysqldump using the following:
mysqldump -h... -u... -p... --compatible=mssql > MSSQL_Compatible_Data.sql
Here is what the mysqldump --help --verbose says on that
--compatible=name Change the dump to be compatible with a given mode.
By default tables are dumped in a format optimized for
MySQL. Legal modes are: ansi, mysql323, mysql40,
postgresql, oracle, mssql, db2, maxdb, no_key_options,
no_table_options, no_field_options. One can use several
modes separated by commas. Note: Requires MySQL server
version 4.1.0 or higher. This option is ignored with
earlier server versions.
Попробуйте!