Quiero asegurarme de que mi base de datos (SQL Server 2008) permanece inmutable, pero todavía accesible para lecturas durante algunas operaciones de mantenimiento (copias de seguridad, transiciones a otros servidores de bases de datos, etc.) ¿cómo puedo bloquearlo programáticamente para cambios en C#?¿Cómo puedo bloquear una base de datos de SQL Server para cambios?
6
A
Respuesta
12
Puede ejecutar un ALTER DATABASE <mydb> SET READ_ONLY
para poner una base de datos en modo de solo lectura.
Si desea que el comando al fracaso si no se puede ejecutar de inmediato se especifica así:
ALTER DATABASE <mydb>
SET READ_ONLY
WITH NO_WAIT
Si usted quiere que sea rollback todas las conexiones abiertas se especifica el orden como la siguiente:
ALTER DATABASE <mydb>
SET READ_ONLY
WITH ROLLBACK IMMEDIATE
Estas opciones están bien documentados en SQL Server Books online
Cuestiones relacionadas
- 1. ¿cómo sabe SQL Server para bloquear objetos de vista?
- 2. Cambios de seguimiento en una base de datos de SQL Server 2005
- 3. ¿Cómo puedo obtener un volcado de SQL de una base de datos de SQL Server 2008?
- 4. ¿Cómo creo una base de datos programáticamente en SQL Server?
- 5. ¿Cuál es una manera fácil de implementar cambios en la base de datos usando SQL Server?
- 6. Migraciones de base de datos para SQL Server
- 7. ¿Cómo escucho de base de datos SQL Server cambia
- 8. Crear una base de datos mediante programación en SQL Server
- 9. ¿Cómo crear un proyecto de base de datos desde una base de datos SQL Server existente?
- 10. ¿Cómo puedo exportar datos desde SQL Server?
- 11. copiar una base de datos dentro de SQL Server Express?
- 12. Mover una tabla de una base de datos a otra base de datos SQL Server
- 13. ¿Cómo puedo almacenar un hash en una base de datos de SQL Server usando C#?
- 14. ¿Cómo puedo determinar si existe una función de base de datos en SQL Server?
- 15. Analizador de SQL Server: cómo filtrar trazas para mostrar solo eventos de una base de datos?
- 16. Base de datos SQL Azure usando SQL Server Management Studio
- 17. Usando una base de datos .MDF SQL Server con ASP.NET versus usando SQL Server
- 18. Múltiples idiomas en una base de datos - SQL Server 2005
- 19. Asegurar una base de datos SQL Server 2008R2
- 20. ¿Quitar usuario de la base de datos de SQL Server?
- 21. ¿Cómo otorgo acceso de lectura para un usuario a una base de datos en SQL Server?
- 22. ¿Cómo convertir la base de datos de SQL Server 2008 R2 a SQL Server 2012?
- 23. Consulta SQL para mostrar todas las vistas en una base de datos de SQL Server 2005
- 24. Administrador de base de datos de SQL Server gratis
- 25. ¿Cómo seleccionar datos de una tabla desde otra base de datos en SQL Server?
- 26. ¿Cómo hago una versión de una base de datos de SQL Server?
- 27. ¿Cómo comprobar el rendimiento de una base de datos de SQL Server?
- 28. ¿Cómo se comprueba qué versión de SQL Server para una base de datos utilizando TSQL?
- 29. ¿Cómo verificar una base de datos de SQL Server CE para los índices?
- 30. ¿Cómo puedo agregar objetos de base de datos de SQL Server a TFS?
Gracias, esto parece funcionar algunas de las veces, pero la mitad de las veces que ejecute la consulta (en SQL Server Mana gement Studio) la ejecución se bloquea y no se devuelve ... – user1088045
Puede especificar 'WITH NO_WAIT' para que falle inmediatamente cuando no puede ejecutar el comando debido a transacciones abiertas, etc. O puede especificar' WITH ROLLBACK IMMEDIATE' para hacerlo revertir todas las transacciones abiertas. –