2017-06-21 4 views
0

Ich begann in einem neuen Projekt zu arbeiten, das ich in C# programmieren und SQL Server verwenden. Die Datenbank wird etwas komplizierter, aber es gibt noch keine Sorgen, aber gestern habe ich irgendwo in Stack Overflow einen neuen Weg gefunden, Tabellen zu verknüpfen.SQL unterschiedliches Verhalten von REFERENCE-Wort

Tabelle A

CREATE TABLE tableA (
    Id int NOT NULL IDENTITY(1,1), 
    name varchar(50), 
    CONSTRAINT tablea_pk PRIMARY KEY (Id)) 

Tabelle B

CREATE TABLE tableB (
    Id int NOT NULL IDENTITY(1,1), 
    name varchar(50), 
    idA int NOT NULL REFERENCES TableA(Id) ON DELETE CASCADE, 
    CONSTRAINT tableB_pk PRIMARY KEY (Id)) 

Tabelle C

CREATE TABLE tableC (
    Id int NOT NULL IDENTITY(1,1), 
    name varchar(50), 
    idB int NOT NULL, 
    CONSTRAINT tableC_fk_tableB FOREIGN KEY(idB) 
     REFERENCES tableB(Id) 
     ON DELETE CASCADE) 

Ich nehme an, beide Formen der creati ng-Referenzen tun genau das gleiche, der einzige Unterschied ist, wenn Sie den Verweis in Tabelle B erstellen Sie keinen Constraint-Namen für den Fremdschlüssel, so dass der Name des Fremdschlüssels zufällig generiert wird, wie ich in sysobjects Tabelle sehen kann:

SELECT * FROM sysobjects WHERE name LIKE '%FK%' 

foreign keys

die Fragen sind: Sie beide Informationsquellen arbeiten die gleiche Weise? Ist es das gleiche, wenn ich einen Constraint-Fremdschlüssel erzeuge ... oder wenn ich einen PK aus der Definitionszeile der Spalte referenziere?

Ich weiß nicht, ob dies nur in SQL Server getan werden kann oder es ist etwas allgemein von SQL und ich habe versucht, Informationen darüber auf Google zu finden, aber ich hatte kein Glück (vielleicht weil ich nicht weiß was ich suche)

Antwort

1

Es ist das gleiche, und Sie können auch Ihre Constraint inline in Tabelle B wie folgt nennen:

CREATE TABLE tableB (
Id int NOT NULL IDENTITY(1,1), 
name varchar(50), 
idA int NOT NULL CONSTRAINT FK_TableB_TableA REFERENCES TableA(Id) ON DELETE CASCADE, 
CONSTRAINT tableB_pk PRIMARY KEY (Id)) 
go 
Verwandte Themen