Skip to content

Commit a58a08a

Browse files
authored
Merge pull request #57 from Bilal-io/bugfix/sql-server-batches
Fixes #56 SqlServer Sink not working with batches
2 parents 9c12e13 + f25318a commit a58a08a

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

Extensions/SqlServer/Cosmos.DataTransfer.SqlServerExtension/SqlServerDataSinkExtension.cs

+5-3
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,12 @@ public async Task WriteAsync(IAsyncEnumerable<IDataItem> dataItems, IConfigurati
3636
bulkCopy.ColumnMappings.Add(new SqlBulkCopyColumnMapping(dbColumn.ColumnName, dbColumn.ColumnName));
3737
}
3838

39+
var dataTable = new DataTable();
40+
dataTable.Columns.AddRange(dataColumns.Values.ToArray());
41+
3942
var batches = dataItems.Buffer(settings.BatchSize);
4043
await foreach (var batch in batches.WithCancellation(cancellationToken))
4144
{
42-
var dataTable = new DataTable();
43-
dataTable.Columns.AddRange(dataColumns.Values.ToArray());
4445
foreach (var item in batch)
4546
{
4647
var fieldNames = item.GetFieldNames().ToList();
@@ -77,6 +78,7 @@ public async Task WriteAsync(IAsyncEnumerable<IDataItem> dataItems, IConfigurati
7778
dataTable.Rows.Add(row);
7879
}
7980
await bulkCopy.WriteToServerAsync(dataTable, cancellationToken);
81+
dataTable.Clear();
8082
}
8183

8284
await transaction.CommitAsync(cancellationToken);
@@ -91,4 +93,4 @@ public async Task WriteAsync(IAsyncEnumerable<IDataItem> dataItems, IConfigurati
9193
await connection.CloseAsync();
9294
}
9395
}
94-
}
96+
}

0 commit comments

Comments
 (0)