在沒有 Workbench 的情況下將 SQL Server 數據移植到 MySQL
當
MySQL Workbench
用於將數據從 遷移SQL Server
到 時,MySQL
我遇到了一個無法逃脫撇號的錯誤。在此期間,我仍想移植該數據。有什麼簡單的方法可以做到這一點嗎?我已將數據導出到帶有語句的文件中,但它們與(I’s new to )
INSERT
的語法不匹配,所以我不知道它是否有效,文件在每個語句的末尾也不包含分號.MySQL``MySQL
提前致謝。
更新
因此,到目前為止,看起來最簡單的方法是將數據導出到平面文件中並遍歷每個表,並確保還生成一個
SSIS
文件,您可以使用該文件來自動化未來的導出。像這樣:DTExec /File MyExportedSissFileForOneTable.dtsx
然後使用
PowerShell
或其他一些腳本語言來完成您需要更新的所有不同文件。然後導入文件MySQL
- 我還沒有弄清楚。
回想起來,使用我自己的轉換器可能會更好,因為
MySQL
usessnake case
而不是title case
likeSQL Server
。所以,我要做的是使用這樣的
PowerShell
腳本:$tables = "FirstTable", "SecondTable" function script { param( [System.String] $table ) "set nocount on; select * from dbo."+$table } $tables | % { $path = "C:\Data\"+$_+".txt" $script = script $_ sqlcmd -S MyServer -d MyDatabase -W -h -1 -E -Q $script -s `"`t`" -o $path }
這將從我的
SQL Server
數據庫中導出所有數據並將它們放入文件中,然後我會將這些文件導入到MySQL
. 我還沒有完全弄清楚。我讓MySQL Workbench
做最初的CREATE TABLE
陳述,並用來Vim
做一切蛇案例。
在 SQL Server 上,
bcp out
.在 MySQL 上,
LOAD DATA INFILE
.對於移動數據,你看過
bcp
嗎?它是 SQL Server 的“批量複製程序”。 https://docs.microsoft.com/en-us/sql/tools/bcp-utility。將行和列終止符設置為數據中不存在的東西 ~EOC~ ~EOR~ 等。您可以
LOAD DATA INFILE
在 MySQL 上使用“”來批量載入平面文件。再次設置行和列終止符。https://dev.mysql.com/doc/refman/5.7/en/load-data.html
我會為此使用普通的批處理文件,因為我總是在使用 PowerShell 呼叫某些執行檔時遇到問題,通常是在傳入參數時。