SQL Server преобразует импортированные данные с помощью поиска - PullRequest
0 голосов
/ 11 мая 2018

Я (теоретически) импортирую данные в базу данных сервера SQL из файлов CSV следующим образом:

Accounts.csv:

AccountID,AccountHolder,Balance
ABC-1234,Person A,100000.50
CDE-4567,Person B,30.75
FGH-8910,Person C,25.00

уже купили.csv

FromAccount,ToAccount,TransferAmount
FGH-8910,FGH-8910,25
ABC-456,FGH-8910,28
FGH-8910,CDE-4567,60

Допустим, я интегрирую эти данные в свои существующие таблицы (Account и Trans), которые имеют ту же структуру, что и выше, но у меня другая система нумерации счетов (Столбец AccountID моей Account таблицы INT IDENTITY(1,1))

. Я могу использовать мастер импорта и экспорта SQL Server, чтобы импортировать Accounts.csv в таблицу Accounts и исключить столбец AccountID, и три учетные записи будут импортированы.в таблицу Account, и AccountID будет назначен в столбце идентификаторов.

Однако, когда я прихожу к импорту транзакций.csv, у меня есть старые номера счетов.

Как я могузатем импортируйте файл Transactions.csv и замените идентификаторы accountID новыми идентификаторами AccountID, назначенными столбцом идентификаторов?

Я подозреваю, что это можно сделать в SSIS, но мне интересно, есть ли способ использовать OPENQUERY/ BULK IMPORT также?

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Вставить в промежуточную таблицу dbo.Account_Staging (без столбца IDENTITY) из CSV-файла

Редактировать / очистить / манипулировать импортированными данными

Скопировать данные в реальную таблицус оператором T-SQL, например:

INSERT INTO dbo.Account (AccountHolder,Balance)      
SELECT AccountHolder,Balance FROM dbo.Account_Staging
0 голосов
/ 11 мая 2018

Сначала обработайте идентификаторы Accounts.csv, добавьте в файл новый столбец идентификаторов или создайте новый файл с новыми идентификаторами учетных записей.

Затем предварительно обработайте файл транзакций, заменив идентификаторы старых учетных записей новыми идентификаторами учетных записей.

Наконец, обработайте новый файл транзакции.

...