SqlBulkSyncExport 2026.9.1.5
dotnet tool install --global SqlBulkSyncExport --version 2026.9.1.5
dotnet new tool-manifest
dotnet tool install --local SqlBulkSyncExport --version 2026.9.1.5
#tool dotnet:?package=SqlBulkSyncExport&version=2026.9.1.5
nuke :add-package SqlBulkSyncExport --version 2026.9.1.5
SqlBulkSyncExport
.NET global tool that exports SQL Server change tracking deltas (and optional interval full sync) to CSV files in a target folder.
Inspired by SqlBulkSyncFunction, without a target database: source schema drives CSV columns, and sync watermarks live in a YAML state file.
Install
dotnet tool install --global SqlBulkSyncExport
Usage
sqlbulksyncexport sync <config.yml> <state.yml> <outputfolder> [OPTIONS]
Options:
| Option | Description |
|---|---|
--seed |
Force a full snapshot for change-tracking jobs |
--include-table <key> |
Only export the given table key (repeatable) |
--exclude-table <key> |
Skip the given table key (repeatable) |
Authentication
Configure source.connectionString in YAML.
Set source.entraIdAuth: true to authenticate with DefaultAzureCredential (optional source.tenantId or AZURE_TENANT_ID).
Configuration
See samples/config.yml for a fuller example.
Minimal config (table key becomes the default {key}.csv file name):
source:
connectionString: "Server=localhost;Initial Catalog=SyncTest;Integrated Security=True;TrustServerCertificate=True"
# entraIdAuth: true # optional; DefaultAzureCredential
# tenantId: "00000000-0000-0000-0000-000000000000" # optional; or AZURE_TENANT_ID
tables:
dbo_Customers:
source: dbo.Customers
dbo_Orders:
source: dbo.Orders
Optional source fields:
entraIdAuth— defaults to false; set true for Entra /DefaultAzureCredentialtenantId— optional tenant for Entra auth (falls back toAZURE_TENANT_ID)
Important defaults:
includeHeaderdefaults to true when omittedwriteDeleteddefaults to false (opt-in deleted PK files)newLinedefaults to CRLF (\r\n)progressLogBatchSizedefaults to 10000 (log every N written rows;<= 0disables)targetFile/deletedFileare file names with extension, no path- Timestamp/version tokens are inserted before the extension, for example:
- delta:
dbo_Customers_20260101120000_0000000010_0000000020.csv - full snapshot:
dbo_Customers_20260101120000_0000000020_full.csv - deleted PKs (when enabled):
dbo_Customers.deleted_20260101120000_0000000010_0000000020.csv
- delta:
Sync state
See samples/state.yml. Missing table entries are treated as never synced (currentVersion: -1) and trigger a full snapshot export.
Do not flip a job between change tracking and fullSync without clearing state for those tables.
Modes
- Change tracking (default): incremental I/U CSV; optional deleted-PK CSV; first run / invalid watermark /
--seedwrites a full snapshot - Full sync: when
fullSyncis present, exports a full table snapshot when the interval elapses (Unix-ms watermark)
Prerequisites
- .NET 10 SDK / runtime
- SQL Server with change tracking enabled on source tables (CT mode)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.9.1.5 | 32 | 9/1/2026 |
| 2026.8.31.3 | 47 | 8/31/2026 |