Estoy experimentando y aprendiendo con Microsoft SQL Server 2008 R2 SP1. Tengo una base de datos donde hice muchos experimentos. Ahora me gustaría dejarlo y recrearlo. Extraigo la secuencia de comandos de creación de la base de datos, la elimino y utilizo la secuencia de comandos para volver a crearla. Para mi sorpresa, todas las tablas, claves, etc. todavía están allí. ¿Cómo elimino la base de datos para poder reconstruir la base de datos desde cero?Dejar y recrear bases de datos en Microsoft SQL Server
Respuesta
USE master
IF EXISTS(select * from sys.databases where name='yourDBname')
DROP DATABASE yourDBname
CREATE DATABASE yourDBname
extraigo el script de creación de base de datos
este extracto del script de creación para todo en la base de datos (tablas, claves, etc.). Si simplemente desea crear una base de datos vacía, basta con ejecutar CREATE DATABASE <dbname>
+1 a AnandPhadke por su parte del código
Este código se cerrarán todas las conexiones activas a la base de datos y luego dejar caer que
WHILE EXISTS(select NULL from sys.databases where name='YourDBName')
BEGIN
DECLARE @SQL varchar(max)
SELECT @SQL = COALESCE(@SQL,'') + 'Kill ' + Convert(varchar, SPId) + ';'
FROM MASTER..SysProcesses
WHERE DBId = DB_ID(N'YourDBName') AND SPId <> @@SPId
EXEC(@SQL)
DROP DATABASE [YourDBName]
END
GO
CREATE DATABASE YourDBName
GO
Requerir que el DBName se tipee más de una vez es propenso a errores, en algún momento se ejecutará con entradas incoherentes y consecuencias imprevistas.
Las respuestas de AnandPhadke o Pierre con soporte variable serían las preferidas para mí.
DECLARE @DBName varchar(50) = 'YourDatabaseName'
USE master
IF EXISTS(select * from sys.databases where name= @DBName)
EXEC('DROP DATABASE ' + @DBName)
EXEC('CREATE DATABASE ' + @DBName)
o
DECLARE @DBName varchar(50) = 'YourDatabaseName'
WHILE EXISTS(select NULL from sys.databases where name = @DBName)
BEGIN
DECLARE @SQL varchar(max)
SELECT @SQL = COALESCE(@SQL,'') + 'Kill ' + Convert(varchar, SPId) + ';' FROM MASTER..SysProcesses WHERE DBId = DB_ID(@DBName) AND SPId <> @@SPId
EXEC(@SQL)
EXEC('DROP DATABASE ' + @DBName)
END
GO
Esto funciona mejor para mí: (?)
if exists (select name from sys.databases where name='YourDBName')
alter database YourDBName set single_user with rollback immediate
go
if exists (select name from sys.databases where name='YourDBName')
drop database YourDBName
Esto realmente no responde la pregunta. Si tiene una pregunta diferente, puede formularla haciendo clic en [Preguntar pregunta] (http://stackoverflow.com/questions/ask). También puede [agregar una recompensa] (http://stackoverflow.com/help/privileges/set-bounties) para atraer más atención a esta pregunta una vez que tenga suficiente [reputación] (http://stackoverflow.com/help/ que-reputación). - [De la crítica] (/ crítica/mensajes de baja calidad/12598382) –
Creo que calculó mal esta respuesta, @KhanImranAli. Este intenta responder, aunque mal. Esto debe moderarse mediante votación, no mediante marcación y revisión negativa. – Palec
Incluya una explicación de lo que hace su código y cómo responde la pregunta. Si obtiene un fragmento de código como respuesta, es posible que no sepa qué hacer con él. La respuesta debería dar al OP y a los futuros visitantes orientación. Señalar, cuál es la idea detrás de su código, ayuda enormemente a comprender el problema y aplicar o modificar su solución. – Palec
de SQL Server 2016 (y superior) el apoyo de una línea y atómica sintaxis DROP DATABASE IF EXISTS database_name
REF : https://msdn.microsoft.com/en-us/library/ms178613.aspx
- 1. Node.js y Microsoft SQL Server
- 2. Sql Server 2008 - Dejar caer un sinónimo
- 3. Lectura de datos de Microsoft SQL Server en R
- 4. Vista de SQL Server en varias bases de datos
- 5. Microsoft SQL Server 2008 - Fechas
- 6. Cómo descartar varias bases de datos en SQL Server
- 7. ¿Cómo combinar dos bases de datos en SQL Server?
- 8. ¿Cómo controlar las bases de datos de SQL Server?
- 9. Obtener lista de bases de datos de SQL Server
- 10. Migrar la base de datos SQLite a Microsoft SQL Server
- 11. Conversión de Microsoft SQL Server a MySQL
- 12. ¿Se pueden desarrollar las ediciones "Express" de Microsoft SQL Server?
- 13. SQL Server: Migrar procedimientos almacenados entre bases de datos, instancias
- 14. microsoft sql server: verificar los permisos propios de los usuarios
- 15. Cómo transferir datos cifrados sql entre bases de datos de SQL Server 2005?
- 16. C# - MySQL vs Microsoft SQL Server
- 17. ¿Cómo ejecutar un archivo SQL de 3GB (Microsoft SQL Server)?
- 18. Identificación de objetos no utilizados en Microsoft SQL Server 2005
- 19. Conexión a Microsoft SQL Server con Clojure
- 20. Microsoft SQL Server correo electrónico validación
- 21. FxCop para SQL Server - Herramienta para analizar las bases de datos de SQL Server en busca de posibles problemas
- 22. Copiar valores BLOB entre bases de datos con SQL puro en SQL Server
- 23. ¿Cómo puedo gestionar bases de datos SQL CE en SQL Server Management Studio?
- 24. ¿Cómo uso MySQL como origen de datos en Microsoft SQL Server Analysis Services?
- 25. Microsoft SQL Browser Client
- 26. Microsoft Excel: PowerPivot 2010: Vincular bases de datos de acceso
- 27. Convenciones de nombres de bases de datos de Microsoft?
- 28. Asistente de publicación de bases de datos SQL con SQL Server 2008
- 29. Microsoft SQL Server 2005 Línea de escritura de la consola
- 30. ¿Cuánto espacio ocupa una vista en Microsoft SQL Server?
Tienes razón, mi pregunta fue estúpida. De hecho, las tablas que seguí viendo se crearon realmente en la base de datos maestra, en lugar de en mi base de datos. –
¡Esto me ayudó mucho! –