BCP не возвращает ошибок, но также не копирует строки
Я пытаюсь выгрузить очень большой набор данных из 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, но он нене имеет значения, если этоs 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
Кто-нибудь знает что?здесь происходит?
Спасибо!