Один из возможных способов сделать это (не имея подробной информации о ваших данных - так что время от времени угадывая) будет:
BULK INSERT
ваш CSV-файл во временной таблице, поэтомуу вас есть как RoleID, так и Permission ID (предположим, что у вас есть оба в CSV)
, затем используйте транзакцию и несколько операторов T-SQL, чтобы поместить данные в нужные места.
Шаг 1: ОБЪЕМНАЯ ВСТАВКА
Вам потребуется использовать BULK INSERT
, чтобы получить данные во временную таблицу:
CREATE TABLE #BulkImportTemp (RoleID INT, PermissionID INT)
BULK INSERT #BulkImportTemp
FROM 'c:\yourcsvfile.csv'
WITH
(FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n')
GO
SELECT * FROM #BulkImportTemp
Шаг 2: обновите необходимые таблицы
Теперь, когда у вас есть все эти данные во временной таблице, вы можете обновить необходимые таблицы:
START TRANSACTION
UPDATE dbo.Role
SET .......
FROM #BulkImportTemp tmp
WHERE ........
UPDATE dbo.Permission
SET .......
FROM #BulkImportTemp tmp
WHERE ........
INSERT INTO dbo.RolePermission(....)
SELECT ........
FROM #BulkImportTemp tmp
WHERE ........
COMMIT