2016-05-10 11 views
0

Okay, so habe ich es geschafft, diese beiden Tabellen zu verbinden:SQL Löschen verbundenen Zeilen und das Hinzufügen von gleichen Werten

CREATE TABLE [dbo].[T_Artikli] (
[ArtikliId] INT   IDENTITY (1, 1) NOT NULL, 
[Naziv]  NVARCHAR (100) NOT NULL, 
[Sifra]  VARCHAR (13) NOT NULL, 
[Vp]  FLOAT (53)  NOT NULL, 
[MP]  FLOAT (53)  NOT NULL, 
[Napomena] NVARCHAR (300) NOT NULL, 
PRIMARY KEY CLUSTERED ([ArtikliId] ASC) 
); 

und

CREATE TABLE [dbo].[T_Stanje] (
[StanjeId] INT   IDENTITY (1, 1) NOT NULL, 
[Trenutno] INT   NOT NULL, 
[Naruceno] INT   NOT NULL, 
[Datum] DATE   NOT NULL, 
[Firma] NVARCHAR (40) NOT NULL, 
[ArtiklId] INT   NOT NULL, 
PRIMARY KEY CLUSTERED ([StanjeId] ASC), 
CONSTRAINT [FK_T_Stanje_T_Artikli] FOREIGN KEY ([StanjeId]) REFERENCES [dbo].[T_Artikli] ([ArtikliId]) 
); 

Und es wirkt wie ein Zauber. Wenn es darum geht, eine dieser Tabellen Zeilen zu löschen habe ich es einfach so:

Beim Löschen Artikl Tabelle (Artiklid und ArtikliId ist kein Tippfehler: D)

string deleteSql = 
      "DELETE FROM T_Stanje WHERE ArtiklId = @Id " + 
      "DELETE FROM T_Artikli WHERE ArtikliId = @Id;"; 

und beim Löschen Stanje Tabelle

Diese funktionieren auch wie ein Zauber, ABER wenn ich Werte zu Artikli und Stanje hinzufüge und dann diese Stanje Zeile lösche, kann ich keine neuen Stanje für das gleiche Artikli hinzufügen. Error:

Antwort

1

Zu allererst Sie Identität verwenden, die automatisch generiert wird. Sie können also nicht dieselbe Zeile erstellen.

Zweitens verweisen den falschen Fremdschlüssel ich

+0

Ja glauben, aber couln't es seine Artikli.ID = 1 und Stanje.ArtiklId = 5? IDs müssen nicht die gleichen Werte sein, oder? – Morsus

+0

Ich habe das Problem in der Abfrage behoben. Aber jetzt habe ich ein anderes Problem. Ich kann "Stanje" für dasselbe "Artikli" hinzufügen. Ich habe UNIQUE-Parameter zu "Stanje.ArtiklId" hinzugefügt, aber das Programm läuft pass genau das und erstellt Duplikate ... – Morsus

+0

Könnten Sie Ihre einzigartige Einschränkung zeigen, oder wie auch immer Sie es getan haben? – gayan1991

1

Das Problem ist hier

CONSTRAINT [FK_T_Stanje_T_Artikli] 
FOREIGN KEY ([StanjeId]) 
REFERENCES [dbo].[T_Artikli] ([ArtikliId]) 

Ihre Fremdschlüssel ist falsch. Es sollte sein:

CONSTRAINT [FK_T_Stanje_T_Artikli] 
FOREIGN KEY ([ArtiklId]) 
REFERENCES [dbo].[T_Artikli] ([ArtikliId]) 
1

Ich denke

CONSTRAINT [FK_T_Stanje_T_Artikli] 
FOREIGN KEY ([StanjeId]) 
REFERENCES [dbo].[T_Artikli] ([ArtikliId]) 

sollte
CONSTRAINT [FK_T_Stanje_T_Artikli] 
FOREIGN KEY ([ArtiklId]) 
REFERENCES [dbo].[T_Artikli] ([ArtikliId]) 
Verwandte Themen