Наилучшим способом будет использование служб SSIS. В службах SSIS имеется компонент для чтения csv (источник плоских файлов), который обрабатывает все типы плоских файлов (конвейер или табуляции с разделителями и т. Д.). С помощью функции Lookup можно проверить существующую строку в таблицу, а затем вы можете обновить, вставить или удалить, используя компонент Oledb.
Если вы не хотите использовать SSIS, существует другой способ использования хранимой процедуры XML. Вместо попадания в базу данных для каждой строки вы можете передать данные в виде XML и затем манипулировать в хранимой процедуре.
Пример: вставка данных в таблицу с использованием XML в качестве источника
CREATE PROCEDURE [dbo].[sp_Insert_XML]
@XMLDATA xml
AS
НАЧАТЬ
SET NOCOUNT ON;
-- Insert statements for procedure here
Insert into RCMReport(
ProjectName
,Category
,EndTime)
Select
XMLDATA.item.value('@ProjectName[1]', 'varchar(255)') AS ProjectName,
XMLDATA.item.value('@Category[1]', 'varchar(200)') AS Category,
XMLDATA.item.value('@EndTime[1]', 'datetime') AS EndTime
FROM @XMLDATA.nodes('//RCMReport/InsertList') AS XMLDATA(item)