SQL Server Collation Migration (UTF-8 / UTF-16) Data Copy + Verification

This repository contains two main scripts to support a SQL Server 2022 migration scenario:

  1. Data copy (Variant B / Checkpointing): copies data from a source database into a target database table-by-table with restart capability.
  2. Verification / compare script: compares source & target databases without comparing row contents (rowcounts + schema + programmable objects + principals).

Intended usage: build a new target DB (e.g. UTF-8 collation), deploy schema, run copy, then verify.

Repository layout

  • scripts/migrate_copy_checkpoint.sql
    Copy data source → target (restartable, per-table commit, FK-aware order, live progress output)

  • scripts/compare_source_target.sql
    Compare source vs target (textual summaries + result sets)

    • Rowcounts per table
    • Column schema diffs
    • Views/Procs/Functions hash compare
    • Trigger hash compare
    • Users/Roles + Role memberships
  • docs/USAGE.md
    How to run the migration copy safely.

  • docs/VERIFY.md
    How to run and interpret the compare results.

Quickstart

  1. Open SQL Server Management Studio (SSMS)
  2. Ensure target DB exists and schema is deployed
  3. Run:
    • scripts/migrate_copy_checkpoint.sql
  4. After successful copy, run:
    • scripts/compare_source_target.sql

Both scripts show live progress output in SSMS (Messages tab).

Configuration

At the top of each script set:

  • @SourceDb (default sysdb_UTF8)
  • @TargetDb (default sysdb_utf8_jr)

Notes

  • The copy script disables triggers, constraints, and nonclustered indexes in target during load and re-enables them afterwards.
  • The compare script uses hashes (SHA2_256) for object definitions to quickly detect differences.
Description
Provides scripts to do generic collation migration. Copies source db contents to the migrated target database with the desired target collation. Plus script to verify contents and basic schema data.
Readme GPL-3.0 54 KiB