microsoft / microsoft/azure-sql-database-container

[Bug]: changing recovery model en database configuration

Open
#130 0 comments 0 reactions 1 assignee View on GitHub

@ericjulien is already working on this.

Since Aug 6, 2026.

bug User-filled
Dominant language
Shell
Stars
17
Forks
4
Avg merge
9h 49m
Merged PRs (30d)
15

Description

Container image tag

sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io/azure-sql/db-dev:latest

Host OS

Windows 11 (x86_64)

Container runtime and version

(build 2026-07-16, EngineEdition = 5, ProductVersion 12.0.2000.8)

What happened

alter database recovery model should not be allowed into sql-azure-container databases to match cloud version.

Additionally, after changing a database's recovery model with ALTER DATABASE ... SET RECOVERY, sys.databases reports inconsistent values for the same database depending on which database the query runs from:

Queried from master → returns the actual value that was set (e.g. BULK_LOGGED).
Queried from within the user database → always returns FULL, regardless of what was set.

seems hardcoded.

Steps to reproduce

-- 1) Create a database and change its recovery model (from a master connection)
CREATE DATABASE recotest;
GO
ALTER DATABASE recotest SET RECOVERY BULK_LOGGED;
GO

-- 2) Read it from master -> returns BULK_LOGGED (the real value)
SELECT recovery_model_desc
FROM sys.databases
WHERE name = 'recotest';
GO

-- 3) Now connect WITH Database=recotest and read the SAME view
-- (e.g. sqlcmd ... -d recotest) -> returns FULL (inconsistent!)
SELECT recovery_model_desc
FROM sys.databases
WHERE database_id = DB_ID();
GO

Expected: both queries return the same value (BULK_LOGGED).
Actual: master returns BULK_LOGGED, the user-database connection returns FULL.

Same thing via sqlcmd against the container, to show the context dependency:

docker exec /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P -C -d master -Q "SELECT recovery_model_desc FROM sys.databases WHERE name='recotest';"

-> BULK_LOGGED

docker exec /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P -C -d recotest -Q "SELECT recovery_model_desc FROM sys.databases WHERE database_id=DB_ID();"

-> FULL

Additional context

No response

Confirmation
  • I scanned open issues and Known limitations for a duplicate.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.