我遇到以下问题:我有一个包含数据的.csv
文件(大约30mb)。我喜欢将该文件的内容加载到我的IPBlock表中更具体的数据库,如下所示:
startIP: Int
endIP: Int
LocationID: Int
文件的内容如下:
"16777216","16777471","17"
"16777472","16778239","49"
"16778240","16778495","14409"
我尝试执行此查询:
LOAD DATA LOCAL INFILE 'C:\Users\Molu\Desktop\GeoLiteCity_20131203\test.csv'
INTO TABLE IPBlock
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(startIP , endIP, LocationID);
我得到了以下错误
不支持LOAD DATA SQL构造或语句。
和
错误源:“。net sqlClient Data Provider”错误消息“LOCAL附近的语法不正确”
我已经尝试使用双“\”的版本,如:C:\\Users\\Molu
并且有和没有“LOCAL”关键字(这里唯一不同的是错误信息是:“INFILE附近的语法不正确”)
你有什么想法吗?提前谢谢。
答案 0 :(得分:7)
SQLServer中没有LOAD DATA LOCAL INFILE
;它出现在MySQL
中。您应该使用bcp (Bulk Copy)
实用程序来执行相同操作。
请参阅此处了解如何使用相同的
https://msdn.microsoft.com/en-us/library/ms188365.aspx
(OR)
像这样使用批量插入
BULK
INSERT IPBlock
FROM 'C:\Users\Molu\Desktop\GeoLiteCity_20131203\test.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO