BulkInsert в таблицу со столбцом Identity (T-SQL)

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

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

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

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 (идентификатор строки).

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

ФМТ начинается так:

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

person NealWalters    schedule 26.01.2012    source источник
comment
Вы можете задать его здесь dba.stackexchange.com   -  person Tim Schmelter    schedule 27.01.2012


Ответы (1)


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

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

GO
SELECT * FROM ServicerStageACS; 
person NealWalters    schedule 27.01.2012