Skip to content

UTF-8 Collation ​

SQL Server 2019+ supports UTF-8 collations for VARCHAR columns, reducing storage for predominantly ASCII data while supporting full Unicode.

Helpers ​

utf8Column ​

Generate a column definition with UTF-8 collation:

ts
import { utf8Column } from "@tracker1/mssql";

const col = utf8Column("Name", "varchar(100)");
// "Name varchar(100) COLLATE Latin1_General_100_CI_AS_SC_UTF8"

supportsUtf8 ​

Generate a check query:

ts
import { supportsUtf8 } from "@tracker1/mssql";

const sql = supportsUtf8();
// "SELECT CASE WHEN SERVERPROPERTY('ProductMajorVersion') >= 15 THEN 1 ELSE 0 END AS supported"

setDatabaseUtf8 ​

Generate ALTER DATABASE statement:

ts
import { setDatabaseUtf8 } from "@tracker1/mssql";

const sql = setDatabaseUtf8("MyDatabase");
// "ALTER DATABASE [MyDatabase] COLLATE Latin1_General_100_CI_AS_SC_UTF8"

Available Collations ​

ts
import { UTF8_COLLATIONS } from "@tracker1/mssql";

UTF8_COLLATIONS.CI_AS;    // "Latin1_General_100_CI_AS_SC_UTF8"
UTF8_COLLATIONS.CS_AS;    // "Latin1_General_100_CS_AS_SC_UTF8"
UTF8_COLLATIONS.CI_AI;    // "Latin1_General_100_CI_AI_SC_UTF8"
UTF8_COLLATIONS.CS_AI;    // "Latin1_General_100_CS_AI_SC_UTF8"