SQL Konflikt mit der REFERENCE-Einschränkung

ML180

Lt. Junior Grade
Registriert
Jan. 2006
Beiträge
301
Moin moin,
folgenden Befehlt habe ich bisher ohne Probleme ausgeführt.
delete from s4t.s4t_user.tblartikel where TITLE is null

jetzt bekomme ich folgenden Fehler angezeigt.

Meldung 547, Ebene 16, Status 0, Zeile 1
Die DELETE-Anweisung steht in Konflikt mit der REFERENCE-Einschränkung 'FK_ARTIKEL_KBA_MAP'. Der Konflikt trat in der 'S4T'-Datenbank, Tabelle 's4t_user.ARTIKEL_KBA_MAP', column 'ARTIKEL_ID' auf.

Ich glaube, der Fehler tritt auf, seitdem ich eine Datenbanksicherung gemacht habe.
Wie kann ich diesen Fehler beheben.
Wenn möglich genau beschreiben, ich übe noch mit SQL.

Vielen dank schon mal
Gruß
Markus
 
Offenbar verletzt dein DELETE-Befehl eine referentielle Integritätsbedingung, nämlich 'FK_ARTIKEL_KBA_MAP'. Diese Bedingungen besagen üblicherweise, daß (z.B.) ein Datensatz nicht gelöscht werden darf, wenn andere Datensätze noch auf ihn verweisen.

Mach mal
Code:
exec sp_help s4t_user.ARTIKEL_KBA_MAP

Da sollte er dir (unter anderem) die Integritätsbedingungen abzeigen, die mit dieser Tabelle zusammenhängen, und die Fremdschlüsselbeziehungen. Im Zweifelsfall poste das Ergebnis hier rein (bitte in Code-Tags :))
 
Ich kann mich täsuchen, aber für mich klingt das als wenn du eine Integritäts-Regel erställt hättest (oder Struktur Update der Datenbank) die verhindert, dass du Artikel aus "s4t.s4t_user.tblartikel" löschen darfst, da sonst in der Tabelle "s4t_user.ARTIKEL_KBA_MAP" noch Artikel vorhanden wären, die keinem Artikel mehr zugeordnet werden können (Referenz)

Schau halt mal in der Tabelle nach mit

Select * from s4t.s4t_user.tblartikel where TITLE is null

, um welche Artikel es sich handelt und prüfe dann mal die IDs dieser Artikel mit den Artikeln in der Tabelle "ARTIKEL_KBA_MAP"

Evtl geht folgendes bei dir: Select * from ARTIKEL_KBA_MAP where ID in (Select ID from s4t.s4t_user.tblartikel where TITLE is null)

Evtl hilft dir das
 
Also Anfassen und selektieren kann ich alles.
in der Tabelle "ARTIKEL_KBA_MAP" hat die ID keine Übereinstimmung mit irgendeinem Wert in der "tblartikel".
Ich habe auch kein Update eingespielt oder sonstiges. Ich habe lediglich neue Artikel eingefügt in die "tblartikel". auch danach funktionierte der Delete befehl problemlos. Seit der Datenbanksicherung scheint das problem da zu sein.
exec sp_help s4t_user.ARTIKEL_KBA_MAP
funktioniert garnicht.

edit:
angenommen ich habe über
Select * from ARTIKEL_KBA_MAP where ID in (Select ID from s4t.s4t_user.tblartikel where TITLE is null)
die Daten markiert, kann ich diese nicht löschen oder?

besten Dank schonmal
 
Zuletzt bearbeitet: (hinzufügen)
Du benutzt aber MS SQL Server, oder? Welche Version?
 
Stimmt, ich habe es vergessen zu sagen, Sql Server 2008, und dort über das Managment Studio
 
Vielleicht fehlte in meinem Befehl von oben noch ein Qualifikator, versuch also mal

Code:
exec sp_help s4t.s4t_user.ARTIKEL_KBA_MAP

Wenn was dabei rauskommt, dann such in der Ausgabe mal nach 'FK_ARTIKEL_KBA_MAP'. Wenn nicht, poste die Fehlermeldung :)
 
Wenn du über meine Abfrage Ergebnisse erhälst, bedeutet das das du Artikel hast, die du nicht löschen darfst, weil dein Datenbank Schema vorgibt, dass es nur Artikel geben darf, die in der s4t.s4t_user.tblartikel vorhanden sind.

Dann kannst du das Problem weiter Isolieren und dir anschauen, warum du dort Probleme bekommst.
 
NullPointer schrieb:
Vielleicht fehlte in meinem Befehl von oben noch ein Qualifikator, versuch also mal

Code:
exec sp_help s4t.s4t_user.ARTIKEL_KBA_MAP

Wenn was dabei rauskommt, dann such in der Ausgabe mal nach 'FK_ARTIKEL_KBA_MAP'. Wenn nicht, poste die Fehlermeldung :)
Meldung 102, Ebene 15, Status 1, Zeile 1
Falsche Syntax in der Nähe von '.'.
 
Hm, da kann ich leider nix zu sagen :(
 
Zurück
Oben