У меня есть текстовый файл, который был создан путем сброса в него 8 SQL таблиц. Теперь мне нужно импортировать эти данные обратно на SQL сервер.
Используя BULK insert, я смог загрузить данные в одну таблицу с одним столбцом 'FileData'
.
DECLARE @FileTable TABLE (FileData NVARCHAR(MAX))
INSERT INTO @FileTable
SELECT BulkColumn
FROM OPENROWSET( BULK N'C:\My\Path\Name\FileName.txt', SINGLE_CLOB) AS Contents
SELECT * FROM @FileTable
Итак, теперь У меня есть эта огромная строка, которую мне нужно организовать в разные таблицы.
Например, эта часть строки соответствует приведенной ниже таблице:
FileData
00001 00000009716496000000000331001700000115200000000000
Таблица:
![enter image description here](https://i.stack.imgur.com/rx9JJ.png)
It also seems like all fields have a set length and I can get that length.
I can see doing something like this:
select SUBSTRING('00001 00000009716496000000000331001700000115200000000000 ', 1,5) as RecordKey
select SUBSTRING('00001 00000009716496000000000331001700000115200000000000 ', 6,17) as Filler
select SUBSTRING('00001 00000009716496000000000331001700000115200000000000 ', 23,16) as BundleAnnualPremium
введите описание изображения здесь
Но есть ли более быстрый и лучший способ загрузить эти данные в разные таблицы?