將file.csv導入到sql server 2008時出現問題。將數據類型DECIMAL從CSV導入到SQL服務器
在我的file.csv中,小數點是這樣寫的:(例如1234,34112)和SQL服務器似乎並不瞭解','是十進制的。
我的解決方案是使用BULK INSERT作爲VARCHAR導入它,然後將其轉換爲十進制。它的作品,但我想這可能是一個更好的解決方案,我無法得到。
你能幫我解決嗎?
在此先感謝
將file.csv導入到sql server 2008時出現問題。將數據類型DECIMAL從CSV導入到SQL服務器
在我的file.csv中,小數點是這樣寫的:(例如1234,34112)和SQL服務器似乎並不瞭解','是十進制的。
我的解決方案是使用BULK INSERT作爲VARCHAR導入它,然後將其轉換爲十進制。它的作品,但我想這可能是一個更好的解決方案,我無法得到。
你能幫我解決嗎?
在此先感謝
有做一個你已經提到在導入SQL Server,然後做這樣的事情的方式只有兩種..
CREATE Table ImportTable (Value NVARCHAR(1000)) --<-- Import the data as it is
INSERT INTO @TABLE VALUES
('1234,34112'),('12651635,68466'),('1234574,5874')
/* Alter table add column of NUMERIC type.
And update that column something like this...
*/
UPDATE ImportTable
SET NewColumn = CAST(REPLACE(Value , ',', '.') AS NUMERIC(28,8))
或者,你可以改變它的Excel在導入之前
除非您使用SSIS導入數據,否則最好在Sql Server 1st中使用丟失數據類型獲取數據,然後根據需要執行任何數據操作。
謝謝你的回答。 :) – yke
不是一個問題,很高興它幫助你可以接受答案:) –
沒有足夠的信心回答,但也許BCP與-R開關,這將適用於您的區域設置。 BCP:http://technet.microsoft.com/en-us/library/ms162802.aspx –
個人而言,我幾乎總是將數據加載到字符登臺表中,然後在數據庫中執行轉換。我發現它使調試變得更容易,並且通常可以加快數據傳輸的進程。所以,你的方法很好。 –