我導入源CSV文件,我不知道該信源編碼,我只能看到兩種�
(ANSI編碼)或�
(UTF8-沒有-BOM編碼),當我用Notepad++
(related question)打開文件。重音字符不能正確地與BULK INSERT進口
此文件已經導入到使用bulk insert
數據庫mssql-2008
:
DECLARE @bulkinsert NVARCHAR(2000)
SET @bulkinsert =
N'BULK INSERT #TempData FROM ''' +
@FilePath +
N''' WITH (FIRSTROW = 2,FIELDTERMINATOR = ''","'',ROWTERMINATOR =''\n'')'
EXEC sp_executesql @bulkinsert
這是然後在列1(varchar()
)複製到正規table1
從#tempData
。現在當我看到這table1
我看到一些?
在這些字符的地方。
我試過cast
到nvarchar()
但它沒有幫助。
當我深入瞭解那些字符真正支持我們同時下載的鏈接時,我看到的字符是é
,ä
,å
等等。
我會使用replace
修復數據,但我需要製作一些醜陋的代碼,並查看單詞的單個模式並進行替換,因此看起來很難。
數據庫/表歸類:SQL_Latin1_General_CP1_CI_AS
COLUMN1(VARCHAR(80))
能否這些字符更改爲類似英文字符或原始字符,而不是?
馬克。我看過Collation and Unicode Support哪個幫不了我。我明白了編碼的含義,但沒有提供給我what to do。我已經查看了stackoverflow的大部分帖子,是的,有一些關於它的帖子,但與我的搜索不符。
我無法弄清問題出在哪裏。
你提的問題是非常不清楚。你是說當你導入一個文本文件時,SQL Server中的數據不正確?如果是這樣,您需要提供以下信息:文本文件的編碼,目標列的數據類型,您在哪裏看到不正確的字符。 – Pondlife
@Pondlife感謝您的回覆。我現在已經更新了這個問題,我希望它更清楚。 – tough
我還是不明白,所有的細節,但我最好的猜測是,你要導入Unicode數據成'varchar'列,而不是一個'nvarchar'之一。我建議你確保在'#tempData'所有的字符列是'nvarchar',然後嘗試添加'DATAFILETYPE =「widechar''到您的['BULK INSERT'命令(http://msdn.microsoft.com/en -us /庫/ ms188365(v = SQL.100)的.aspx)。忘記'table1',直到'#tempData'中有乾淨的數據。 – Pondlife