使用SQL 2012 SP从Excel导入制表符分隔的w /逗号

我从Excel创build一个制表符分隔的文件,通过存储过程使用SQL 2012导入。我通过保存制表符分隔创build文件。 有些值需要包含逗号。 Excel会自动用逗号将双引号括起来。 这些值作为空值导入。 我需要用逗号input值,而不用双引号。 我可以打开文本文件并删除所有双引号,导入工作正常。 还有其他build议吗? 数据是在Excel中给我的,所以我必须从这个开始。 是否有另一个过程,而不是保存为制表符分隔可以使用逗号? 我可以更改存储过程中的批量加载语句以不包含双引号吗?

这里是表格:

CREATE TABLE dbo.Logins ( [GenericID] numeric(10, 0) NOT NULL Primary Key, [LoginID] varchar(50) NOT NULL, [EmpType] varchar(50) NOT NULL ); 

存储过程:

  CREATE PROCEDURE [dbo].[InsertUserText] WITH EXEC AS CALLER AS IF OBJECT_ID('TEMPDB..#LoginTemp') IS NULL BEGIN CREATE TABLE #LoginTemp(LoginID varchar(50),EmpType varchar(50)) BULK INSERT #LoginTemp FROM '\\mindlincdb\uploads$\InsertUserText.txt' WITH (ROWTERMINATOR ='\n' ,FIELDTERMINATOR = '\t' ,FIRSTROW=4) PRINT 'File data copied to Temp table' END DECLARE @maxid NUMERIC(10,0) BEGIN TRANSACTION SELECT @maxid = coalesce(MAX(ID), 0) FROM dbo.LOGINS WITH (UPDLOCK) INSERT INTO dbo.LOGINS(GenericID,LoginID,EmpType) SELECT row_number() OVER(ORDER BY (SELECT NULL)) + @maxid, LoginID, EmpType FROM #LoginTemp; 

该文本文件有3行标题。 这是使用逗号(第四行)的一行数据的示例。 实际文本文件中没有空行。 请忽略示例中多余的空行:

  Logins Logins Logins GenericID LoginID EmpType GenericID LoginID EmpType 3 pwilson MA, Resident in Counseling 

MA,咨询居民需要用逗号input,不用双引号。

谢谢你的帮助。

批量加载后,使用以下查询更新数据:

 update #LoginTemp set EmpType = iif(charindex('"', EmpType, 1) = 1, SUBSTRING(EmpType, 2, len(EmpType) - 2), EmpType) where charindex('"', EmpType, 1) = 1 

在这个查询中,我假设,如果一个值是以'"'开始'"' ,它也会以'"'结尾(这是正确的假设)