3906: Failed to update database because the database is read-only (no se pudo actualizar la base de datos porque es de solo lectura)
SQL Server¿Qué significa?
Intentó modificar datos (INSERT/UPDATE/DELETE/DDL) en una base de datos marcada como de solo lectura. SQL Server rechazó la escritura.
¿Por qué ocurre?
La base de datos se configuró como READ_ONLY; la conexión fue a una réplica secundaria de un Availability Group (destinada a lecturas); la base de datos quedó en solo lectura tras un snapshot o una restauración; o el sistema de archivos es de solo lectura. La causa típica es una aplicación dirigida por error a una réplica secundaria.
Cómo solucionarlo
Si realmente debe admitir escritura: ALTER DATABASE mydb SET READ_WRITE; En un Availability Group, dirija la aplicación a la réplica primaria (revise el enrutamiento de conexiones ReadWrite / ApplicationIntent). En un snapshot de solo lectura no se puede escribir; use como destino la base de datos de origen. Verifique también los permisos de los archivos y el sistema de archivos.
Más entradas de este motor
- 102Incorrect syntax near 'token'
- 8114Error converting data type X to Y
- 1204The instance of the SQL Server Database Engine cannot obtain a LOCK resource (la instancia de SQL Server Database Engine no puede obtener un recurso LOCK)
- 15023User already exists in the current database (el usuario ya existe en la base de datos actual)
- 18452Login failed. The login is from an untrusted domain and cannot be used with Windows authentication (error de login; el login procede de un dominio no confiable y no puede usarse con autenticación de Windows)
- 605Attempt to fetch logical page belongs to a different allocation unit (la página lógica solicitada pertenece a otra allocation unit)
- 4922ALTER TABLE ALTER COLUMN failed because one or more objects access this column (falló ALTER TABLE ALTER COLUMN porque uno o más objetos acceden a esta columna)