Сделать как будто Bulk insert из типизированного DataSet
От: Аноним  
Дата: 02.08.06 08:26
Оценка:
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, который будет удалять уже имеющиеся записи перед вставкой?
In .NET we trust!!!
Visit http://vial.russia.webmatrixhosting.net.
WebMatrix hosting best to start with ASP.NET programming!
Volgograd .NET Alliance — http://volgograd.gotdotnet.ru/


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.