Ich habe eine Tabelle mit 4 Spalten (ID (PK, int, NOT NULL), Spalte1 (NULL), Spalte2 (NULL), Spalte3 (NULL))
Ich möchte eine CHECK-Einschränkung (Tabellenebene, denke ich?) hinzufügen, so dass:
%Vor%und Wenn col3 NOT NULL ist, dann muss col1 UND col2 NULL sein
d. col3 sollte null sein, wenn col1 und col2 nicht null sind oder umgekehrt
Ich bin allerdings sehr neu in SQL und SQL Server und bin mir nicht sicher, wie ich das tatsächlich implementieren soll oder ob es implementiert werden kann / sollte?
Ich denke vielleicht:
%Vor%Aber ich bin nicht sicher, ob die Klammern verwendet werden können, um die Logik so zu gruppieren?
Wenn nicht, wie kann dies am besten umgesetzt werden?
Absolut, Sie können das tun. Sehen Sie sich dies sqlfiddle an.
Sie müssen jedoch sicherstellen, dass Sie Ihre Logik richtig eingrenzen. Sie sollten nie ANDs und ORs im gleichen Bereich der Belichtungsreihen mischen. Also:
%Vor%Muss werden:
%Vor%Oder:
%Vor%Abhängig von Ihrer Absicht.
Achte nur darauf, dass du keine Fehler mit Klammern machst.
%Vor%Tags und Links sql sql-server check-constraints