Hallo zusammen
habe 2 Tabellen im MSSQL Server
Tabelle users: username PK, passwd, usw.
Tabelle user_location: username PRIMARY KEY, + weitere, FOREIGN KEY(username) REFERENCES users.
Möchte mit .Net in beiden Tabellen den Usernamen updaten.
Egal welches Update ich zuerst ausführe, kommt immer die eine Foreign Key Fehlermeldung.
Kann ich das mit SQL Überhaupt realisieren?
Denn ich kann mit Update ja immer nur eine TAbelle ansprechen.
Geht da mit Views evtl. was ?
Danke
Stefan
Hallo Stefan,
die einfachste Lösung: du erweiterst den Constraint mit ON UPDATE CASCADE. Dann kannst Du einfach die führende Tabelle ändern und die abhängige geht automatisch mit.
Alternativ:
Du musst den Datensatz zwischenspeichern. In die führende Tabelle den Datensatz mit geändertem Schlüssel mit einem INSERT eintragen, danach den abhängigen Datensatz ändern mit UPDATE und schließlich den alten Datensatz der führenden Tabelle löschen mit DELETE.
Gruß
Peter
Moien
Kann ich das mit SQL Überhaupt realisieren?
Klar (implementiert MySQL den Teil von SQL inzwischen ?): FOREIGN KEY(username) REFERENCES users INITIALLY DEFERRED
und dann alle Aktionen in einen BEGIN … COMMIT-Block packen.
cu