Wie update 2 Spalten in 2 Tabellen, die foreign key
Ich weiß, die Frage, wie die Aktualisierung verschiedener Tabellen in SQL wurde vorher gefragt und die gemeinsame Antwort zu sein scheint, tun Sie separat in einer Transaktion.
Jedoch, die 2 Spalten, die ich brauche zu aktualisieren, haben Sie eine foreign key-so können nicht einzeln aktualisiert werden.
z.B.
Tabelle1.eine ist ein Fremdschlüssel, der auf Tabelle2.ein
Einen der Einträge in den Tabellen falsch ist, z.B. beide Spalten " xxx " und "yyy'
Wie kann ich ein update Tabelle1.a und Tabelle2.ein 'yyy'?
Ich weiß, ich könnte die temp den Schlüssel zu entfernen und zu ersetzen, aber sicherlich gibt es einen anderen Weg.
Dank
InformationsquelleAutor Sunrise | 2012-03-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann man nicht tun, das update gleichzeitig, jedoch können Sie nicht zwingen, SQL zu tun, das update. Sie müssen sicherstellen, dass Ihre Fremdschlüssel haben die referenzielle getriggerte Aktion
ON UPDATE CASCADE
z.B.
+1 auch von mir!
InformationsquelleAutor GarethD
meine Antwort basiert auf den folgenden link: http://msdn.microsoft.com/en-us/library/ms174123%28v=SQL.90%29.aspx
Müssen Sie sicherstellen, dass Ihre table_constraint wird definiert als
ON UPDATE CASCADE
dann, wenn Sie den Wert ändern der primären Schlüssel
siehe das folgende Zitat:
InformationsquelleAutor Dor Cohen
Nicht als fan von on update cascade, würde ich vorschlagen, einen anderen Weg.
Ersten Sie nicht aktualisieren Sie die Übergeordnete Tabelle, fügen Sie einen neuen Datensatz mit dem Wert, den Sie wollen (und den gleichen Daten wie der andere Datensatz für alle anderen Felder). Dann haben Sie keine Schwierigkeiten beim aktualisieren des untergeordneten Tabellen verwenden Sie diesen Wert anstelle des Werts. Weiter Sie haben jetzt die Möglichkeit, um die Arbeit zu tun in den Reihen zu vermeiden, sperren Sie das system, während das ändern erlässt durch. Nachdem alle child-Tabellen aktualisiert wurden, können Sie löschen Sie die ursprüngliche schlechte Bilanz.
InformationsquelleAutor HLGEM