SqlBulkSyncExport 2026.9.1.5

dotnet tool install --global SqlBulkSyncExport --version 2026.9.1.5
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local SqlBulkSyncExport --version 2026.9.1.5
                    
This package contains a .NET tool you can call from the shell/command line.
#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 / DefaultAzureCredential
  • tenantId — optional tenant for Entra auth (falls back to AZURE_TENANT_ID)

Important defaults:

  • includeHeader defaults to true when omitted
  • writeDeleted defaults to false (opt-in deleted PK files)
  • newLine defaults to CRLF (\r\n)
  • progressLogBatchSize defaults to 10000 (log every N written rows; <= 0 disables)
  • targetFile / deletedFile are 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

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 / --seed writes a full snapshot
  • Full sync: when fullSync is 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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