よしを追加するので、私はこの2つのテーブルに接続するために管理:SQLは、接続されている行を削除し、同じ値に
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)
);
と
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])
);
をそして、それは魔法のように動作します。それはこれらのテーブルの行の1つを削除することになると私はやったこと、このような単純な:Stanjeテーブル
を削除string deleteSql =
"DELETE FROM T_Stanje WHERE ArtiklId = @Id " +
"DELETE FROM T_Artikli WHERE ArtikliId = @Id;";
とする場合:
削除Artiklテーブルは、(D ArtiklIdとArtikliIdはタイプミスではありません)
string deleteSql =
"DELETE FROM T_Stanje WHERE StanjeId = @Id;";
これらはまた、ArtikliとStanjeに値を追加してからそのStanje行を削除すると、同じArtikliに新しいStanjeを追加できません。
うんを信じて間違った外部キーを参照しますが、それもArtikli.ID = 1とStanje.ArtiklId = 5をcouln't? IDは必ずしも同じ値である必要はありません。 – Morsus
これは問題がクエリにあったことを修正しました。しかし、今私は別の問題があります。私は同じ 'Artikli'のために忠実な 'Stanje'を追加することができます。私はUNIQUEパラメータを 'Stanje.ArtiklId'に追加しましたが、プログラムは正しく実行され、重複が作成されます... – Morsus
あなたのユニークな制約を表示できますか? – gayan1991