Azure naming · Microsoft.Sql/servers

sql SQL server

Logical SQL server. The name backs a public DNS label (<name>.database.windows.net).

Naming constraints

CAF abbreviationsql
Resource typeMicrosoft.Sql/servers
Length1–63 characters
CaseLowercase only
Allowed charactersLowercase letters, numbers, and hyphens. Can't start or end with a hyphen.
Uniqueness Global
SeparatorHyphen
Watch out: Lowercase only and globally unique. Uppercase in a token is lowercased, so encode that in the convention.

Source: Microsoft Learn, “Naming rules and restrictions for Azure resources”, checked October 2026. Abbreviation from the Cloud Adoption Framework.

Example & copy-ready

A worked name for workload app, env prod, region weu, instance 001.

Example name
sql-app-prod-weu-001 Valid
Validation regex for CI checks or pre-commit hooks (.NET and JavaScript)
^(?=.{1,63}$)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$
Bicep naming expression
var name = take(toLower('sql-${workload}-${env}-${region}-${instance}'), 63)
Terraform local
locals {
  name = substr(lower(join("-", compact(["sql", var.workload, var.env, var.region, var.instance]))), 0, 63)
}

Azure Policy can't evaluate regular expressions, so a policy can check the sql prefix but not the full format. Run the regex in your pipeline, or audit existing names on a schedule.

Uniqueness scope

Globally unique across all of Azure — the name backs a public DNS label, so a clash with any other tenant's resource fails the deployment. Build in enough entropy (org/region/instance) to avoid collisions.

Open in the name generator