Ich möchte in der Lage sein zu wählen, einer Gruppen-id und eine kaskadierende löschen durch drei Tabellen, die in einer MS-SQL-server-Datenbank. Die Tabellen sehen wie folgt aus:
table 1 - GROUP
-------------------------------------------
groupID | description | etc
table 2 - MEMBER
memberID | name | etc
table 3 - MAPPINGTABLE
mappingID | groupID | memberID
Ich bin am überlegen, da ich weiß, dass die groupID, ich könnte wahrscheinlich wählen Sie die Benutzerkennung aus der mapping-Tabelle, basierend auf die Gruppen-id und löschen Sie diese aus der elementtabelle, aber ich in der Regel am Ende mit einem Fehler von:
"Die DELETE-Anweisung in Konflikt mit der REFERENCE-Einschränkung... [FK-constraint in der Tabelle]". Wäre jeder in der Lage sein, geben Sie mir einige Hinweise auf die beste Art und Weise zu löschen, die von allen drei
diese Tabellen gleichzeitig? Dank. Welche Datenbank verwenden Sie? SQL-Syntax - Mehrere Tabellen löschen - MS-Office-Forum. Tut mir Leid 'bout. MS SQL server 2005. Informationsquelle Autor Chris | 2010-03-02
Sql Server Tabelle Löschen Free
Ein Problem bleibt allerdings auch noch bei dieser Lösung: Wenn Foreign Key Constraints definiert sind, die auf die Protokoll-Tabelle verweisen, müssen diese vorher gelöscht werden, damit die TRUNCATE TABLE Anweisung funktioniert. Anschließend sollten auch die Daten in den referenzierenden Tabellen angepasst werden, damit diese nicht mehr auf inzwischen gelöschte Datenzeilen verweisen. Zuletzt können dann die Foreign Key Constraints wieder angelegt werden. Sql server tabelle löschen free. Bei einer Protokoll-Tabelle ist dies aber normalerweise nicht der Fall, so dass das oben gezeigte Skript ausreichen sollte.
Sql Server Tabelle Löschen Server
22
Trotz der Tatsache, dass temporäre Tabellen werden gelöscht, wenn eine Verbindung beendet wird, ist es oft immer noch als gute Praxis explizit löschen von Tabellen um eine absolut bestimmte Aufräumen stattgefunden hat. Zum Beispiel, wenn Sie Ihre Plattform macht Nutzung von connection pooling, d. h. die verbindungen können nie gelöscht werden, dann tun Sie Ihre temporären Tabellen daher auch noch vorhanden? Um zu überprüfen, die Existenz einer temporären Tabelle, die Sie können die folgende Anweisung benutzen/kontrollieren. Sql server tabelle löschen 2010. if object_id ( 'tempdb.. ##temptbl') is not null
begin
drop table ## temptbl
end
Informationsquelle Autor der Antwort John Sansom
Sql Server Tabelle Löschen 2020
Bei Datentypen, die in den Zeilen inline gespeichert sind (z. B. int), wird möglicherweise sogar Platz in den neuen Zeilen belegt, die nach der alter-Anweisung hinzugefügt werden. Um dies zu umgehen, müssen Sie einen Clustered-Index für die Tabelle erstellen oder den Clustered-Index neu erstellen, falls er bereits einen hat. Erstellen, Ändern und Löschen von Tabellen - SQL Server | Microsoft Docs. Die Neuerstellung des Index kann nach dem Ändern der Tabelle mit einem REBUILD-Befehl erfolgen. Aber seien Sie gewarnt, dies kann an sehr großen Tischen langsam sein. Beispielsweise:
ALTER TABLE Test
REBUILD;
Für MySQL (Version 5.
Wie lösche ich große Datenmengen in SQL ohne Protokoll? Ich habe eine große Datentabelle. Diese Tabelle enthält 10 Millionen Datensätze. Sql server tabelle löschen server. Was ist der beste Weg für diese Abfrage
Delete LargeTable where readTime < dateadd ( MONTH, -7, GETDATE ())
Antworten:
Wenn Sie alle Zeilen in dieser Tabelle löschen, ist es am einfachsten, die Tabelle abzuschneiden
TRUNCATE TABLE LargeTable
GO
Beim Abschneiden der Tabelle wird die Tabelle einfach geleert. Sie können die WHERE-Klausel nicht verwenden, um das Löschen der Zeilen zu begrenzen, und es werden keine Trigger ausgelöst. Wenn Sie dagegen mehr als 80-90 Prozent der Daten löschen, sagen Sie, wenn Sie insgesamt 11 Millionen Zeilen haben und 10 Millionen löschen möchten, besteht eine andere Möglichkeit darin, diese 1 Million Zeilen (Datensätze, die Sie behalten möchten) einzufügen) zu einem anderen Staging-Tisch. Schneiden Sie diese große Tabelle ab und fügen Sie diese 1 Million Zeilen zurück. Wenn Berechtigungen / Ansichten oder andere Objekte, denen diese große Tabelle als zugrunde liegende Tabelle zugrunde liegt, nicht durch das Löschen dieser Tabelle beeinflusst werden, können Sie diese relativ kleine Anzahl der Zeilen in eine andere Tabelle übertragen, diese Tabelle löschen und eine andere Tabelle mit demselben Schema erstellen und diese importieren Zeilen zurück in diese ex-große Tabelle.