Импорт нескольких строк из sql с использованием определенных значений
Я пишу приложение в vb.NET, и я ищу наиболее эффективный способ импорта большого количества данных из таблицы SQL. У меня около 10 тыс. Строк в Excel, и я должен сопоставлять каждую из них с конкретной строкой таблицы SQL (около 100 тыс. Записей). В каждой строке есть три столбца, которые вместе идентифицируют определенную строку. Я имею в виду, что 2 строки не могут иметь одинаковые значения во всех трех столбцах, и я хочу использовать их в качестве ключа для соответствия. Интересно, что это самый эффективный способ сделать это, потому что я думаю, что выполнение инструкции типа «select … where [3 conditions]» около 10k раз может сильно замедлить мое приложение. Спасибо за любые предложения
- Вставка CSV-данных в SQL с запятыми
- Запрос INSERT INTO в VBA
- Импорт Excel в SQL Server CE
- Импорт данных Excel в базу данных динамически
- Microsoft Access Insert Into Statement Выбор данных из Excel - поле является смешанным Int и Text
- SAP BO - как получить 1/0 различных значений в неделю в каждой строке
- ADODB Excel / Access SQL Вставить округление десятичных знаков: любая идея, почему и как исправить?
- Отправка файла excel в виде вложения в sql
Правильно ли вы предполагаете, что вызов 10 раз из вашего приложения .net займет слишком много времени.
Более быстрый и эффективный вариант заключается в том, чтобы импортировать ваши данные в таблицу в вашей базе данных SQL либо с помощью инструментов, предлагаемых вашим SQL-сервером для импорта или программным использованием SqlBulkCopy .
В вашей базе данных вы можете писать операторы SQL для выполнения необходимых операций с данными для ваших нужд:
INSERT INTO [DBO].TableName([DestColumm0, DestColumn1,...]) SELECT [SrcColumn1,SourceColum2...] FROM DBO.[ImportTable] WHERE SourceColumX = ConditionA AND SourceColumY = ConditionB AND SourceColumZ = ConditionC
ПРИМЕЧАНИЕ. [DestColumm0, DestColumn1, …] и [SrcColumn1, SourceColum2 …] являются владельцами мест для имен вашего адресата и источника.