Files
sqlserver-collation-migration/README.md

51 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.