2016-07-26 28 views
0

我想批量插入一個csv文件到SQL Server 2014.我設法弄清楚它不識別CSV文件中的行尾字符。SQL Server 2014 CSV導入不能識別行/行的結尾

我得到的錯誤是:

消息4864,級別16,狀態1,過程spTempImport,線74批量負載 數據轉換錯誤(類型不匹配或無效字符爲 指定代碼頁)用於行1,第51欄(Val_0000)。

我已閱讀其他帖子在這裏,並嘗試所有,我不能得到它的工作。

的SPROC如下:

USE [xxxxxxx] 
GO 
/****** Object: StoredProcedure [dbo].[spTempImport] Script Date: 26/07/2016 19:59:56 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

ALTER PROCEDURE [dbo].[++++++++] 

AS 
BEGIN 

SET NOCOUNT ON 

CREATE TABLE #tmp (
     --[BatchID] NVARCHAR(MAX) NOT NULL, 
     [ID] NVARCHAR(50) NOT NULL, 
     [Serial] NVARCHAR(30) NOT NULL, 
     [Date] VARCHAR(15) NOT NULL, 
     [Val_0030]NVARCHAR(15) NULL,  
     [Val_0000]NVARCHAR(15) NULL 
    ) 

    BULK INSERT #tmp 
    FROM 'C:\Temp\test1.csv' 
    WITH 
    (
     FIRSTROW = 1, 
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\r\n' 
) 


SELECT * FROM #tmp 

我已經嘗試使用\ r \ n \ n \ r \ RN CR \ LF LF \ CR和各種十六進制代碼。我在Excel中創建了該文件,並將其另存爲CSV,但無效。我將數據複製到記事本中,並且無法識別換行/回車。

我在做什麼錯?

P.S.我已經刪除了代碼示例中soem的列,val列與名稱不同,[Val_0000]NVARCHAR(15) NULL是最後一列。

回答

0

我將SPROC中的列設置爲VARCHAR(MAX),它工作。