Wie fügen Sie eine not NULL FOREIGN KEY-Spalte zu einer vorhandenen (aufgefüllt) Tabelle in MS SQL?
Ich muss hinzufügen einer not NULL-Spalte zu einer vorhandenen (aufgefüllt) Tabelle, die einen Fremdschlüssel zu einer anderen Tabelle. Dies bringt zwei Probleme:
-
Beim hinzufügen der Spalte, deren Wert darf nicht null sein - mit einer Standard-ist keine option (es sei denn, es wird später entfernt), da die Datenbank-Logik verwendet wird, in der server-seitige Validierung, wenn ein Benutzer einen neuen Datensatz, d.h., wenn die Anwendung versucht, einen Datensatz hinzufügen mit diesem Feld mit einem null-Wert, wird die Datenbank gibt eine Fehlermeldung, dass die Anwendung abgefangen und zurück an den Benutzer, mit der Aufforderung, es zu korrigieren.
-
Die Säule hat eine foreign key-Einschränkung, was bedeutet, Ihr Wert MUSS vorhanden sein, in der fremden Tabelle.
Was ist der beste Weg zu gehen über diese?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie die Spalte, aber NULL zulassen.
Füllen Sie die Spalte mit den korrekten Daten aus der Fremdschlüsseltabelle.
Ändern Sie die Spalte hinzufügen, die nicht null sind.
Fügen Sie die foreign key-Einschränkung.
Über Teile Ihrer Fragen ofc (nach Jahren):
1.Wenn du meinst, dass der default-Wert wäre etwas so schlau, und Sie würden nicht brauchen, um es zu ändern in Zukunft, dann ist Ihr zu wünschen, ist falsch. warum?
aus zwei Gründen:
Sprachen, Datenbanken und so weiter...) der Standardwert ist nicht etwas, was
ersetzen Sie den Wert dynamisch mit etwas, was Sie wollen. Für
Beispiel Func Summe(a,b,c=10), in dieser situation, wenn Sie don ' T geben Sie den parameter c, es würde nehmen Sie es als 10, ansonsten sollten Sie
statt etwas. also die default-Werte sind vorhersehbar und kalkulierbar
Werte, NICHT die smart-Werte.
parameter in einer Methode, coz der relationalen Bedeutungen in RDBMS so u
sicherlich Bearbeiten sollte, dass in Zukunft, vielleicht sogar manchmal ändern
über und über base auf Verwendungen von DB.
2.Es kann sein, Griff mit der code-ich werde es Ihnen zeigen.
Daher Basis dieser Erläuterungen haben, könnten Sie eine Spalte mit der default-Wert, die vorhanden sind, in Schlüssel, aber es ist nicht etwas, das Sie brauchen, und Sie es aktualisieren sollten in Zukunft die Basis auf Ihre Nutzung. und für diese müssen Sie:
ERSTE:
spezifische Tabelle wie diese:
ZWEITE:
Bitte BEACHTEN Sie: Sie kennen die Tabellen-und Spaltennamen sind Beispiel.
DRITTE:
All-in-One:
Fertig!
Hoffen, dass Sie Ihr problem lösen