Ich möchte eine Datenbank löschen. Ich habe den folgenden Code verwendet, aber ohne Erfolg.
public void DropDataBase(string DBName,SqlConnection scon)
{
try
{
SqlConnection.ClearAllPools();
SqlCommand cmd = new SqlCommand("ALTER DATABASE " + DBName + " SET SINGLE_USER WITH ROLLBACK IMMEDIATE", scon);
cmd.CommandType = CommandType.Text;
scon.Open();
cmd.ExecuteNonQuery();
scon.Close();
SqlCommand cmddrpdb = new SqlCommand("drop database " + DBName + "", scon);
cmddrpdb.CommandType = CommandType.Text;
scon.Open();
cmddrpdb.ExecuteNonQuery();
scon.Close();
}
catch (Exception ex)
{
MessageBox.Show("DropDataBase : " +ex.Message);
}
}
Ich erhalte den Fehler, dass die Datenbank nicht gelöscht werden kann, da sie derzeit verwendet wird . Bitte helfen Sie mir in der oben genannten Ausgabe.
c#
asp.net
sql-server
Sachin Kulkarni
quelle
quelle
Bevor Sie eine Datenbank löschen, trennen Sie zuerst die Verbindung zu dieser Datenbank.
Ich habe eine Lösung unter http://www.kodyaz.com/articles/kill-all-processes-of-a-database.aspx gefunden
quelle
Für SQL Server mgmt. Studio:
Klicken Sie mit der rechten Maustaste auf Datenbank: Eigenschaften -> Optionen -> Zugriff einschränken: Stellen Sie "Einzelbenutzer" ein und führen Sie das Löschen anschließend durch
quelle
drop database myDatabase
. Es hat das Problem nicht gelöst. der gleiche Fehler (... it is currently is use
) ist passiert.Es ist zu spät, aber es kann für zukünftige Benutzer nützlich sein.
Sie können die folgende Abfrage verwenden, bevor Sie die Datenbankabfrage löschen:
Es wird klappen. Sie können auch auf verweisen
Wie gebe ich im SQL-Skript "Vorhandene Verbindungen schließen" an?
Ich hoffe es hilft dir :)
quelle
use master go
Anfang hinzuzufügen, wenn Sie derzeit [MyDatabase]Führen Sie in SQL Server Management Studio 2016 Folgendes aus:
Klicken Sie mit der rechten Maustaste auf die Datenbank
Klicken Sie auf Löschen
Überprüfen Sie, ob vorhandene Verbindungen geschlossen sind
Löschvorgang ausführen
quelle
(Ersetzen Sie 'Test' durch den Namen der Datenbank, die Sie löschen möchten.) Hier erfahren Sie, welche Prozesse sie verwenden.
Wenn Sie dennoch einen Drop erzwingen möchten, lautet der ultimative Ansatz:
Hoffe das hilft !
quelle
Schalten Sie Ihre Datenbank zuerst offline, nachdem Sie sie entfernt haben, z
quelle
DROP DATABASE dbname;
Wenn Sie die Datenbank in SQL Management Studio löschen und die Nachricht erhalten, vergessen Sie nicht, dass Sie Master als ausgewählte Datenbank verwenden, da Ihre Abfrage sonst auch eine Verbindung zur Datenbank darstellt.
quelle
Eine Brute-Force-Problemumgehung könnte sein:
Beenden Sie den SQL Server-Dienst.
Löschen Sie die entsprechenden .mdf- und .ldf-Dateien.
Starten Sie den SQL Server-Dienst.
Stellen Sie eine Verbindung mit SSMS her und löschen Sie die Datenbank.
quelle
Ich wollte darauf hinweisen, dass ich ein Skript verwendet habe, das aus zwei der folgenden Antworten abgeleitet ist.
Requisiten an @Hitesh Mistry und @unruledboy
quelle
Unter Verwendung von MS SQL Server 2008 ist dies im Dialogfeld LÖSCHEN mit Verbindungsoptionen schließen das generierte Skript. Ich denke, es ist das Beste:
quelle
USE [master] IF EXISTS(SELECT * FROM sys.databases WHERE name = 'Database_Name') BEGIN -- your script here END
Ich wollte nur ein vb.net geben (wie bei der Sprache c, wenn ich konvertieren möchte ..). Ich hatte ein ähnliches Problem bei der Deinstallation eines meiner Programme. Das Löschen der Datenbank war etwas schwierig. Ja, Benutzer konnten dazu gebracht werden, auf den Server zu gehen mit Express, aber das ist nicht sauber, nachdem sich ein paar Mal umgesehen haben, ist ein perfektes Stück Code zusammengekommen ...
Hoffe das hilft jedem, der xChickenx sucht
UPDATE Mit diesem Konverter ist hier die C # -Version:
quelle
Sie können eine aktuell verwendete
sp_detach_db
Datenbank nicht löschen. Sie können jedoch eine gespeicherte Prozedur verwenden, wenn Sie eine Datenbank vom Server entfernen möchten, ohne die Datenbankdateien zu löschen.quelle
Nur die DB umzubenennen (um gelöscht zu werden) hat den Trick für mich getan. Es kam aus dem Laderaum eines beliebigen Prozesses, der auf die Datenbank zugegriffen hatte, und so konnte ich die Datenbank löschen.
quelle
Gehen Sie zum Abschnitt Verfügbare Datenbanken und wählen Sie Master aus. Versuchen Sie dann DROP DATABASE the_DB_name.
quelle
Um eine Datenbank zu löschen, auch wenn sie ausgeführt wird, können Sie diese Batchdatei verwenden
quelle
quelle