2015-06-01 4 views
1

Я импортирую 3 тысячи строк из листа Excel с помощью ExcelDataReader в Datatable.Как я могу проверить данные datatable перед их вставкой с помощью SqlBulkCopy

Как проверить эти строки перед их вставкой в ​​базу данных с помощью SqlBulkCopy.Writetoserver().

Вопросы:

1. Как сравнить мой DataTable к TableScheme одной из таблиц SQL Server.

2. Могу ли я Validate FK Препятствия и PK Дупликации перед введением

3. если я имею некоторую таблицу, как это с SponsorID колонна с FK той же таблице

ID - Имя - Возраст - связь - column4 - SponsorID

100 - Адам Michale - 32 - сам - 1/1/2015 - 100

101 - Anna Mike - 29 - жена - 1/1/2015 - 100

102 - Сара Адам - ​​6 - Дочь - 1/1/2015 - 100

есть в любом случае, чтобы сделать такую ​​вставку с помощью SqlBulkCopy.

Заранее спасибо.

И я буду более чем счастлив услышать о каких-либо других подходов к вставках, как это, если есть какие-либо

+0

Был ли мой ответ полезным? –

+0

ThanksThiago. На вопрос один-два да, это был usfel, но я не понимаю вашего ответа на номер три ... таблица, которую вы видите выше, является схемой dbo.table, и этот идентификатор isIDENTITY .. В моем excel у меня нет этот столбец или столбец «Спонсор». Но у меня могло бы быть имя спонсора для каждой записи или другого Спонсорского идентификатора, но я не знаю, как использовать этот ID –

+0

Я вижу, у вас может быть что-то вроде: select * from SqlTable как table1 inner Присоедините SqlTabel как таблицу2 к таблице1.Name = table2.СпонсоромName, проблема будет, если у вас есть люди с одинаковым именем ... = ( –

ответ

0
  1. Вы можете запросить файл первенствовать и сравните это с помощью языка SQL. Смотрите пример ниже:

    SELECT * FROM OPENROWSET ('Microsoft.Jet.OLEDB.4.0', ' Excel 8.0; Database = C: \ Excel-SQL-server.xls', [Лист1 $])

Найти больше опционов о распределенных запросах на этом link.

  1. Вы можете запросить данные, которые у вас уже есть на данных sql, и сравнить их с excel для проверки дублирования PK/записи.

  2. Вы можете создать столбец OldID с идентификаторами, присутствующими на excel. Затем обновите идентификатор спонсора новыми идентификаторами, используя ссылку OldID.