【发布时间】:2017-09-21 11:44:27
【问题描述】:
我尝试将数据从 .csv 插入 MS SQL 数据库。我是这样做的:
CREATE TABLE [dbo].[prescreen_candidateData](
[id] [varchar](50) DEFAULT '',
[email] [varchar](50) DEFAULT '',
[firstname] [varchar](50) DEFAULT '',
[lastname] [varchar](50) DEFAULT '',
[city] [varchar](50) DEFAULT '',
[address] [varchar](50) DEFAULT '',
[phone] [varchar](50) DEFAULT '',
[birthday] [varchar](50) DEFAULT '',
[candidateurl] [varchar](50) DEFAULT '',
[createdAt] [varchar](50) DEFAULT '') ON [PRIMARY]
创建表后,我尝试插入:
BULK INSERT [dbo].[prescreen_candidateData] FROM '\\server2\prescreen$\candidateData.csv' WITH (
FIRSTROW = 2,
FIELDTERMINATOR = '\,',
ROWTERMINATOR = '\n',
KEEPNULLS
);
我的 .csv 是这样构建的:
id,email,firstname,lastname,city,address,phone,birthday,candidateurl,createdAt
例如:
58282,xx_yy@gmail.com,Michael,Meier,,"""Street Nr 12,08159,City""",012345678910,"1996-08-29 00:00:00",https://linktoemployee, 2016-05-12
在我的示例中,city 为空,在我的 csv 中显示为在批量插入中,“”之间的哪个会被忽略?
编辑: **我通过创建一个链接到 csv 的服务器来解决它...按我的意愿工作**
【问题讨论】:
-
我没有你的问题的答案,但我想说
ROWTERMINATOR = '\n'被sql server 忽略了。而ROWTERMINATOR = '\r\n'将是used。大多数时候这会起作用,但并非总是如此。为了使用换行符作为行终止符,请使用ROWTERMINATOR = '0x0a'。 -
试试;对于场终结者。据我所知,excel 使用 ;默认为字段终止符。
-
我从我的 ftp 上的外部服务获取这个 csv...我尝试与他们交谈...但是,我认为逗号是 sql 上的默认终止符...
标签: sql-server csv bulkinsert