2 k_savelev:
Спасибо, не знал о таком классе.
Попробовал использовать — не получилось так как надо.
1)
DELETE FROM TableName
2)
SET IDENTITY_INSERT TableName ON
3)
Using bcp As New SqlBulkCopy(Package.Connection)
bcp.DestinationTableName = TableName
Table.Columns("ID").AutoIncrement = False
Table.Columns("ID").ReadOnly = False
bcp.WriteToServer(Table)
End Using
4)
SET IDENTITY_INSERT TableName OFF
Получаю сообщение на Exception:
Explicit value must be specified for identity column in table 'sprSysProf' either when IDENTITY_INSERT is set to ON or when a replication user is inserting into a NOT FOR REPLICATION identity column.
Если убрать IDENTITY у поля в таблице, то шаги 1, 3 проходят. Но такой вариант не подходит, потому что:
1) Необходимо убирать IDENTITY у всех таблиц;
2) Необходима делать транзакцию, иначе пользователь может остаться без данных после шага 1.
Попробую конкретизировать вопросы:
1) Возможно ли смешивать T-SQL и Bulk-команды в пределах одной транзакции?
2) Возможно ли сделать такой Bulk INSERT, который будет удалять уже имеющиеся записи перед вставкой?
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение