Estoy haciendo un desarrollo activo en mi esquema en SQL Server 2008 y con frecuencia quiero volver a ejecutar mi script de base de datos drop / create. Cuando corro
USE [master]
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'MyDatabase')
DROP DATABASE [MyDatabase]
GO
A menudo me sale este error
Msg 3702, Level 16, State 4, Line 3
Cannot drop database "MyDatabase" because it is currently in use.
Si hace clic con el botón derecho en la base de datos en el panel del explorador de objetos y selecciona la tarea Eliminar en el menú contextual, hay una casilla de verificación para "cerrar las conexiones existentes"
¿Hay alguna manera de especificar esta opción en mi script?
sql
sql-server
mella
fuente
fuente
Vaya al estudio de administración y haga todo lo que describa, solo que en lugar de hacer clic en Aceptar, haga clic en Script. Mostrará el código que ejecutará y luego podrá incorporarlo a sus scripts.
En este caso, quieres:
fuente
De acuerdo con la documentación de ALTER DATABASE SET , todavía existe la posibilidad de que después de configurar una base de datos en modo SINGLE_USER no pueda acceder a esa base de datos:
Por lo tanto, un script completo para descartar la base de datos con conexiones existentes puede verse así:
fuente
Sé que es demasiado tarde, pero puede ser útil para alguien. al usar esto, desconecte su base de datos
fuente
Probé lo que dice hgmnz en SQL Server 2012.
Gestión creada para mí:
fuente
ROLLBACK IMMEDIATE
, se incluirá la declaración. Estosp_delete_database_backuphistory
viene de marcar la opción "Eliminar copia de seguridad y restaurar la información del historial de las bases de datos".ALTER DATABASE SET SINGLE_USER ...
si no hay conexiones actuales para cerrar.pruebe este código C # para descartar su base de datos
público estático vacío DropDatabases (string dataBase) {
fuente