我正在尝试将大量数据从 .csv 文件转储到 SQL Server 2012 数据库中。我正在调查bcp
.
编辑:这是一个自动化过程,而不仅仅是一次性的。我也BULK INSERT
无权访问此数据库。
当我尝试将数据复制到数据库中时,bcp
不会返回任何错误,但实际上也不会复制任何内容 - 它只是返回0 rows copied
. 我已将其缩减为一个不起作用的最小案例。
首先,创建一个包含两列的简单表:
CREATE TABLE [dbo].[mincase](
[key] [varchar](36) NOT NULL,
[number] [int] NOT NULL
PRIMARY KEY CLUSTERED
(
[key] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 40) ON [PRIMARY]
) ON [PRIMARY]
GO
然后,用于bcp
从中创建格式文件。请注意,此示例创建了一个 XML 格式文件,但它是 XML 还是本机无关紧要。
bcp MyDB.dbo.mincase format nul -T -n -f mincasexml.fmt -x -S .\SQLEXPRESS
现在创建一个 data.csv 文件,其中包含一行和两个条目,以制表符分隔。就我而言,该文件很简单:
somecharacters 12345
同样,这是一个制表符,而不是两个空格,并且是否有尾随换行符似乎并不重要。
现在尝试使用bcp
该格式文件来插入该文件中的数据:
bcp MyDB.dbo.mincase in data.csv -f mincasexml.fmt -T -S .\SQLEXPRESS
我没有将数据复制到数据库,而是得到以下信息:
Starting copy...
0 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total : 1
有谁知道这里发生了什么?
谢谢!