BulkInsert в таблицу со столбцом Identity (T-SQL) - PullRequest
1 голос
/ 27 января 2012

1) Могу ли я сделать BulkInsert из CSV-файла в таблицу таким образом, чтобы в таблице был столбец идентификаторов, которого нет в CSV, и который автоматически назначается?

2) Есть ли какое-либо правило, согласно которому таблица, в которую я помещаю BulkInsert, должна иметь те же столбцы в том же порядке, что и читаемый плоский файл?

Это то, что я пытаюсь сделать.Слишком много полей для включения всего ...

BULK INSERT ServicerStageACS  
   FROM 'C:\POC\DataFiles\ACSDemo1.csv' 
   WITH (FORMATFILE = 'C:\POC\DataFiles\ACSDemo1.Fmt');
GO
SELECT * FROM ServicerStageACS; 

Ошибка:

Сообщение 4864, уровень 16, состояние 1, строка 3 Ошибка преобразования данных при массовой загрузке (несоответствие типов или недопустимоесимвол для указанной кодовой страницы) для строки 1, столбца 1 (rowID).

Я почти уверен, что ошибка в том, что у меня есть личность.

FMT начинается так:

9.0
4
1       SQLCHAR       0       7       ","      1     Month        SQL_Latin1_General_CP1_CI_AS
2       SQLCHAR       0       100     ","      2     Client       SQL_Latin1_General_CP1_CI_AS

1 Ответ

2 голосов
/ 27 января 2012

Сотрудник рекомендовал сделать массовую вставку в представление проще.Представление не содержит поле идентификации или любое другое поле, которое не нужно загружать.

truncate table ServicerStageACS
go
BULK INSERT VW_BulkInsert_ServicerStageACS  
   FROM 'C:\POC\DataFiles\ACSDemo1.csv' 
   WITH
        (
        FIELDTERMINATOR = ',',
        ROWTERMINATOR = '\n'
        )

GO
SELECT * FROM ServicerStageACS; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...