3906: Failed to update database because the database is read-only (échec de la mise à jour : la base est en lecture seule)
SQL ServerQue signifie cette erreur ?
Vous avez tenté de modifier des données (INSERT/UPDATE/DELETE/DDL) dans une base marquée en lecture seule. SQL Server a refusé l'écriture.
Cause
La base a été passée en READ_ONLY ; la connexion a abouti sur un réplica secondaire d'un Availability Group (destiné aux lectures) ; la base est restée en lecture seule après un snapshot ou une restauration ; ou le système de fichiers est en lecture seule. Une application routée par erreur vers un réplica secondaire est la cause typique.
Comment la corriger
Si elle doit vraiment être accessible en écriture : ALTER DATABASE mydb SET READ_WRITE; Dans un Availability Group, dirigez l'application vers le réplica primaire (vérifiez le routage des connexions ReadWrite / ApplicationIntent). Un snapshot en lecture seule ne peut pas être modifié ; ciblez plutôt la base source. Vérifiez aussi les droits sur les fichiers et le système de fichiers.
Autres entrées pour ce moteur
- 102Incorrect syntax near 'token'
- 8114Error converting data type X to Y
- 1204The instance of the SQL Server Database Engine cannot obtain a LOCK resource (l'instance du moteur SQL Server ne peut pas obtenir de ressource LOCK)
- 15023User already exists in the current database (l'utilisateur existe déjà dans la base courante)
- 18452Login failed. The login is from an untrusted domain and cannot be used with Windows authentication (échec de connexion : login provenant d'un domaine non approuvé, inutilisable avec l'authentification Windows)
- 605Attempt to fetch logical page belongs to a different allocation unit (la page logique lue appartient à une autre unité d'allocation)
- 4922ALTER TABLE ALTER COLUMN failed because one or more objects access this column (échec d'ALTER TABLE ALTER COLUMN : un ou plusieurs objets accèdent à cette colonne)