A library for easy, efficient and high performance bulk insert and update of data, into a Sql Database, from C# applications by leveraging the power of the C# SqlBulkCopy classes with added support for Identity primary key table columns.  Offerring compabitility with .NetStandard 2.0 to support .Net Core 2.0+ & .Net Framework 4.7.2+.

Install-Package SqlBulkHelpers -Version
dotnet add package SqlBulkHelpers --version
<PackageReference Include="SqlBulkHelpers" Version="" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SqlBulkHelpers --version
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SqlBulkHelpers,"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install SqlBulkHelpers as a Cake Addin
#addin nuget:?package=SqlBulkHelpers&version=

// Install SqlBulkHelpers as a Cake Tool
#tool nuget:?package=SqlBulkHelpers&version=
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

- Fix to correctly support fully qualified table names with schema.
- Ensure BulkCopy also uses timeout parameter.
- Add Overloads for easier initialization of SqlMergeMatchQualifierExpression class.
- Breaking change; removed internal Default static references so that I can eliminate any dependency on Configuration framework for better support in .Net Core; New Caching helper and simple constructor with Sql Connection String replace this.
- Added support to specify SqlCommand Timeout Seconds when initializing the Sql Bulk Helper class, instead of relying on the connection wide setting from the Connection string.

Prior Relese Notes:
- Added support for custom match qualifiers to be specified even if bulk inserting/updating data with Identity columns.  This addresses some edge use cases whereby data syncing may be taking place and Identities are used to differentiate data from multiple sources, but the actual merge matches needs to occur on unique fields of the source system.
- Simplified initialization and constructors to provide easier use -- especially if SqlConnection/SqlTransaction already exists and ConnectionString is not available.  It's still recommended to use ISqlBulkHelpersConnectionProvider however, this may not be congruent with existin code bases so now the use of existing Sql Connection & Transaction is encapsulated.
- Provided in-memory cache implementation to help manage caching of Schema DB Loaders for performance.
- Improved pattern for Schema DB Loader management and encourage use of new Caching class; previously its possible that this was being re-loaded multiple times unnecessarily due to relying on internal behavior instead of managing it as a static/singleton.
- Added more Integration Tests for Constructors and Connections, as well as the new DB Schema Loader caching implementation.
- Fixed bug in dynamic initialization of SqlBulkHelpersConnectionProvider and SqlBulkHelpersDBSchemaLoader when not using the Default instances that automtically load the connection string from the application configuration setting.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated 182 12/10/2020 111 12/10/2020
1.0.6 114 12/9/2020
1.0.5 166 12/9/2020
1.0.4 364 11/1/2019
1.0.2 195 10/29/2019