MSSQL 2016支持了utf8編碼的文件,之前處理比較麻煩的bcp 方式導入特殊字元一下子就方便了。 但是之前的版本,處理起來還是有一點麻煩。這次處理使用的資料庫版本是sql server 2014, 用於測試的例子用2個字元串 T3 Rénové tout Confort proche mét ...
MSSQL 2016支持了utf8編碼的文件,之前處理比較麻煩的bcp 方式導入特殊字元一下子就方便了。
但是之前的版本,處理起來還是有一點麻煩。這次處理使用的資料庫版本是sql server 2014,
用於測試的例子用2個字元串
T3 Rénové tout Confort proche métro Ona el Marqués Resort 首先我們在test資料庫上面先創建一個測試表 CREATE TABLE T1 (name NVARCHAR(50)) 分別使用如下幾種處理方法來進行處理 嘗試1:直接用 bcp -c 來處理EXEC sys.xp_cmdshell 'bcp test..T1 in D:\T1.txt -S GINLATOP\MSSQLSERVER2014 -T -c' SELECT * FROM T1
結果是醬汁:
嘗試2 :使用 bcp的格式導入導出來處理
EXEC sys.xp_cmdshell 'bcp test..T1 format nul -f D:\format.xml -S GINLATOP\MSSQLSERVER2014 -T -x -c' EXEC sys.xp_cmdshell 'bcp test..T1 in D:\T1.txt -f D:\format.xml -S GINLATOP\MSSQLSERVER2014 -T -x' SELECT * FROM T1
結果還是這個圖
嘗試3: 使用資料庫自帶的數據導入功能,得出結論可行!
嘗試4: 當嘗試3 也不能導入的時候,可以使用藉助mysql或者其他資料庫作為中轉。先把數據導入其他資料庫,然後藉助鏈接伺服器把數據導入到sql server
可以說,嘗試4的操作比較複雜,但是確是有用的
比如用MySQL做例子: 創建一個同名同架構的表
然後用
load data infile "D:\\T1.txt" into table T1 ;
然後建一個鏈接伺服器把數據導入過來即可
PS:同時向各位大佬求教這種情況用2014 用bcp 能解決這個問題嗎?還是我有某些參數不對呢???
希望這個方法對大家有幫助