2016-07-26 87 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),它工作。