SQL批量导入

时间:2013-10-20 16:38:42

标签: sql sql-server

我有一个简单的批量导入脚本,工作正常

BULK
INSERT tablename
FROM 'd:\www\ftp\test.csv'
  WITH
  (
  KEEPIDENTITY,
  FIELDTERMINATOR = ',',
  ROWTERMINATOR = '\n',
  ERRORFILE = 'd:\www\ftp\test7.log' 
  )
GO

现在在test.csv文件中有以下值:

Bike, Red, "100,00", Blue
Step, Blue, "60,40", Black

我的问题是如何处理脚本中的“100,00”(“xxx,xx”)值?

谢谢!

1 个答案:

答案 0 :(得分:1)

将记录插入临时表,然后执行类似的操作..以获得结果,然后您可以将行添加到所需的表中。这是您的CSV文件

CSV_FILE


您可以执行以下操作将其插入临时表中。

Create Table #Temp
(
Product NVARCHAR(50),
Colour NVARCHAR(50),
Number NVARCHAR(50),
Spare NVARCHAR(50),
Colour1 NVARCHAR(50)
)
GO

BULK
INSERT #Temp
FROM 'C:\Users\ali\Desktop\test.csv'
  WITH
  (
  FIELDTERMINATOR = ',',
  ROWTERMINATOR = '\n'
  )
GO

UPDATE #Temp
SET Number = Number + ',' + Spare

ALTER TABLE #temp
DROP Column Spare

UPDATE #Temp
SET Number = REPLACE(Number, '"', '') 

SELECT * FROM #Temp

结果集

enter image description here

SELECT * INTO [Destination_Table] FROM #Temp
DROP TABLE #Temp