Я пытаюсь импортировать текстовый файл в таблицу с дополнительными полями, которые мне нужно заполнить одновременно. Поля - trans_type_code (varchar), raw_record_status (varchar), import_file_id (int) и import_file_line (int). Первые три поля не меняются на каждую импортированную запись, но, очевидно, четвертая. Я выполняю хранимую процедуру для импорта данных из VBS, передавая только import_file_id.Импорт различного количества полей в MS SQL из текстовых файлов
Сначала я решил указать поля назначения для импортированного текста с помощью BULK INSERT и FORMATFILE, но я не мог понять, как заполнять другие поля одновременно. Я также не знал, как получить номер строки из файла импорта.
Я создал процесс, использующий массовую вставку в временную таблицу, а затем выберите из таблицы temp, чтобы вставить в import_raw_records, чтобы заполнить первые четыре поля, перечисленные выше, но не все записи импорта имеют одинаковое количество полей , Если я создаю временную таблицу с максимальным количеством возможных полей для импортированных данных, данные в текстовом файле заканчиваются заполнением каждого поля без переноса на следующую запись на основе ROWTERMINATOR = \ n, который я использую. Записи с импортированными только четырьмя полями заполнят 20 полей в таблице temp в одной записи, а не создают пять отдельных записей в таблице temp.
Я подтвердил, что CRLF в моем файле импорта действительно 0D0A. Это код, который импортирует данные: set @sqlcmd = ' BULK INSERT #temp_import_records FROM ''' + @import_file + ''' WITH (ROWTERMINATOR = ''\n'') '
Каков наилучший способ справиться с этим? Должен ли я приближаться к этому по-другому? Я не совсем новичок, но мне все еще очень сложно узнать о SQL. Спасибо, что прочитали это, и я надеюсь, что вы сможете помочь.
Спасибо, Джон
Похоже, ваша настоящая проблема заключается в том, что ваш исходный файл не имеет хороших разделителей. Я бы опубликовал это как вопрос с некоторыми образцами данных. – David
@ Давид, спасибо, что помог мне сузить это. Я тоже это сделаю, но это звуковая методология для того, что я пытаюсь сделать, или есть лучший способ? – user3014525