Sto sperimentando e imparando con Microsoft SQL Server 2008 R2 SP1. Ho un database in cui ho fatto molti esperimenti. Ora mi piacerebbe rilasciarlo e ricrearlo. Così estraggo lo script di creazione dal database, lo elimino e uso lo script per ricrearlo. Con mia sorpresa, tutti i tavoli, le chiavi ecc. Sono ancora lì. Come posso eliminare il database, in modo da poter ricostruire il database da zero?Eliminare e ricreare i database in Microsoft SQL Server
risposta
USE master
IF EXISTS(select * from sys.databases where name='yourDBname')
DROP DATABASE yourDBname
CREATE DATABASE yourDBname
ho estrarre lo script di creazione dal database
questo estratto lo script di creazione per tutto nel database (tabelle, chiavi ecc). Se si vuole semplicemente creare un database vuoto, basta eseguire CREATE DATABASE <dbname>
+1 per AnandPhadke per parte del codice sua
Questo codice si chiuderà tutte le connessioni attive al database e poi cadere
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
Richiedere che il DBName venga digitato più di una volta è soggetto ad errori, ad un certo punto verrà eseguito con voci incoerenti e conseguenze indesiderate.
Le risposte di AnandPhadke o di Pierre con supporto variabile sarebbero preferite per me.
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
Questo funziona meglio per me: (?)
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
Questo in realtà non risponde alla domanda. Se hai una domanda diversa, puoi richiederla facendo clic su [Invia domanda] (http://stackoverflow.com/questions/ask). Puoi anche [aggiungere una taglia] (http://stackoverflow.com/help/privileges/set-bounties) per attirare maggiormente l'attenzione su questa domanda una volta che hai abbastanza [reputazione] (http://stackoverflow.com/help/ che cosa è-la reputazione). - [Dalla recensione] (/ recensione/post di bassa qualità/12598382) –
Credo che abbiate giudicato male questa risposta, @KhanImranAli. Questo cerca di rispondere, anche se male. Questo dovrebbe essere moderato dal voto, non dalla segnalazione e dalla recensione negativa. – Palec
Si prega di includere la spiegazione di cosa fa il codice e come risponde alla domanda. Se ottieni uno snippet di codice come risposta, potresti non sapere cosa farne. La risposta dovrebbe dare all'OP e ai futuri visitatori una guida. Sottolineando l'idea alla base del tuo codice, è di grande aiuto per comprendere il problema e applicare o modificare la tua soluzione. – Palec
SQL Server 2016 (e oltre) di supporto di una riga e atomica sintassi DROP DATABASE IF EXISTS database_name
REF : https://msdn.microsoft.com/en-us/library/ms178613.aspx
- 1. Elimina database SQL Server
- 2. Convalida e-mail di Microsoft SQL Server
- 3. Nascondere i database per un accesso su Microsoft Sql Server 2008R2 e successivi
- 4. Migrazione del database SQLite a Microsoft SQL Server
- 5. non è possibile eliminare Amazon RDS SQL Server Database
- 6. Connessione al server Microsoft SQL tramite Python
- 7. bash FreeTDS: esecuzione di query SQL in server Microsoft SQL
- 8. Memorizzazione di e-mail di Outlook in un database Microsoft SQL Server
- 9. Connessione Oracle SQL Developer a Microsoft SQL Server
- 10. Come funziona il progetto del database SQL Server: pubblicazione decidere quando ricreare una tabella?
- 11. Come rilasciare più database in SQL Server
- 12. Come cancellare e ricreare un codice EF esistente Primo database
- 13. Conversione del database di accesso nel database MSSQL tramite Microsoft SQL Server Migration Assistant per l'accesso
- 14. Connessione a SQL Server 2008 utilizzando Microsoft Server Management Studio
- 15. Conformità database HIPAA Microsoft Azure
- 16. Come implementare LIMIT con Microsoft SQL Server?
- 17. Crystal Reports e Microsoft SQL Server Reporting Services
- 18. Come si applicano i sottotipi in un database SQL Server?
- 19. SSIS e Motore di database Microsoft Access a 64 bit
- 20. Come unire due database in SQL Server?
- 21. Linux - PHP 7.0 e MSSQL (Microsoft SQL)
- 22. Alfabeto cirillico con Microsoft SQL Server Management Studio
- 23. Come eliminare i record duplicati in SQL
- 24. Lettura di dati da Microsoft SQL Server in R
- 25. Eliminare tutte le viste da SQL Server
- 26. Aumentare il valore di una colonna Identity in SQL Server senza rilasciare e ricreare la tabella
- 27. SQL Server 2008: eliminare le righe duplicate
- 28. Database locale senza server sql
- 29. Le edizioni "Express" di Microsoft SQL Server sono gratuite?
- 30. Script intero database SQL-Server
Hai ragione, la mia domanda era stupida. Infatti, le tabelle che continuavo a vedere erano effettivamente create nel database master, piuttosto che nel mio database. –
Questo mi ha aiutato molto! –