Heim >Datenbank >MySQL-Tutorial >Wie lege ich Fremdschlüsseleinschränkungen in SQL Server fest?

Wie lege ich Fremdschlüsseleinschränkungen in SQL Server fest?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-01 12:40:111019Durchsuche

How to Establish Foreign Key Constraints in SQL Server?

Festlegen von Fremdschlüsseleinschränkungen in SQL Server

Die Aufrechterhaltung der Datenintegrität ist in jedem Datenbanksystem von entscheidender Bedeutung. SQL Server bietet die Möglichkeit, Beziehungen zwischen Tabellen mithilfe von Fremdschlüsseleinschränkungen zu erzwingen. Die Deklaration von Fremdschlüsseln unterscheidet sich jedoch von anderen Datenbankverwaltungssystemen wie PostgreSQL.

Syntax und Überlegungen

So erstellen Sie einen Fremdschlüssel in SQL Server:

ALTER TABLE <child_table>
ADD CONSTRAINT <constraint_name>
FOREIGN KEY (<child_column>)
REFERENCES <parent_table>(<parent_column>)

Stellen Sie sicher, dass die Anzahl der referenzierenden Spalten in der untergeordneten Tabelle mit der Anzahl der referenzierten Spalten in der übergeordneten Tabelle übereinstimmt. Andernfalls wird ein Fehler ähnlich dem folgenden angezeigt:

Msg 8139, Level 16, State 0, Line 9
Number of referencing columns in foreign key differs from number of referenced columns, table 'question_bank'.

Fehlerbehebung: Falsche Syntax

Der bereitgestellte SQL-Code zum Erstellen der Tabelle „question_bank“ weist einen Fehler auf. Die Spalte „question_exam_id“ in der Tabelle „question_bank“ sollte auf die Spalte „examen_id“ in der Tabelle „examens“ verweisen.

create table question_bank
(
    question_id uniqueidentifier primary key,
    question_exam_id uniqueidentifier not null, <!-- This should be a foreign key -->
    question_text varchar(1024) not null,
    question_point_value decimal,
    constraint question_exam_id foreign key references exams(exam_id)
);

Alternative Syntax: Einschränkungen später hinzufügen

Sie können auch einen Fremdschlüssel erstellen Einschränkungen nach dem Erstellen der untergeordneten Tabelle mit der ALTER TABLE-Anweisung:

alter table question_bank
add constraint question_exam_id_fk foreign key (question_exam_id) references exams(exam_id)

Diese Methode ermöglicht Sie können Einschränkungen getrennt von der Tabellenerstellung definieren, was eine größere Flexibilität und Kontrolle über das Datenbankschema bietet.

Das obige ist der detaillierte Inhalt vonWie lege ich Fremdschlüsseleinschränkungen in SQL Server fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn