![]() |
Datenbank: MS SQL Server Express • Version: 2005 • Zugriff über: ADO
Relation zwischen Tabellen -> FOREIGN KEY-Einschränkung??
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich erstelle gerade einige Beziehungen zwischen Tabellen mittles des MS SQl Server Management Studio Express. Bei der in der Grafik rot makierten Beziehung erhalte ich den folgenden Fehler: TB_AM_Hours-Tabelle - Beziehung "FK_TB_AM_Hours_TB_AM_Projects" kann nicht erstellt werden. Die ALTER TABLE-Anweisung steht in Konflikt mit der FOREIGN KEY-Einschränkung "FK_TB_AM_Hours_TB_AM_Projects". Der Konflikt trat in der "DB_ProjectPoint"-Datenbank, Tabelle "dbo.TB_AM_Projects", column 'ProjectsID' auf. Bei der TB_AM_Programs hat dies einwandfrei funktioniert. Ich sehe hier bei der Projects Tabelle keinen Unterschied zur Programstabelle. ProjectsID ist der Primary key, ein autoinc int wert. Dieser soll mit FK_ProjectsID in der TB_AM_Hours verknüpft werden. Der Designer möchte für die Änderung folgendes SQL Statement ausführen:
SQL-Code:
Warum funktioniert das nicht? Irgendwelche "FOREIGN KEY-Einschränkung" sind mir nicht bekannt.
/* Überprüfen Sie das Skript ausführlich, bevor Sie es außerhalb des Datenbank-Designer-Kontexts ausführen, um potenzielle Datenverluste zu vermeiden.*/
BEGIN TRANSACTION SET QUOTED_IDENTIFIER ON SET ARITHABORT ON SET NUMERIC_ROUNDABORT OFF SET CONCAT_NULL_YIELDS_NULL ON SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON COMMIT BEGIN TRANSACTION GO COMMIT BEGIN TRANSACTION GO ALTER TABLE dbo.TB_AM_Hours ADD CONSTRAINT FK_TB_AM_Hours_TB_AM_Projects FOREIGN KEY ( FK_ProjectID ) REFERENCES dbo.TB_AM_Projects ( ProjectsID ) ON UPDATE NO ACTION ON DELETE NO ACTION GO COMMIT Thanx Marcus |
Re: Relation zwischen Tabellen -> FOREIGN KEY-Einschränku
Dein Problem lässt sich so aus der Ferne schwer beurteilen.
Aber für mich sieht es so aus, als ob die Beziehung schon vorhanden ist und du diese ein 2. Mal anlegen möchtest. Ich würde auf jeden Fall das Server Management Studio verlassen, neu starten und ein Diagramm anlegen (falls noch nicht vorhanden). Im Diagramm sieht man die Beziehungen am Besten. |
Re: Relation zwischen Tabellen -> FOREIGN KEY-Einschränku
Die Beziehung ist noch nicht vorhanden. Ich probiere diese ja in der "Diagramm Ansicht" zu erstellen.
Die Tabellen sind schon mit Daten befüllt. Könnte es daran liegen? |
Re: Relation zwischen Tabellen -> FOREIGN KEY-Einschränku
Zitat:
|
Re: Relation zwischen Tabellen -> FOREIGN KEY-Einschränku
Du hast recht, ich schreibe als Foreign Key teilweise eine 0 weg, die keine Entsprechung in der Mastertabelle hat. Nach dem löschen dieser Datensätze kann ich die Relation anlegen :)
Allerdings muss ich jetzt mein Softwaredesign überarbeiten. Da werde ich wohl NULL in die Primärschlüsseltabelle schreiben müssen, wenn es keine Entsprechung in der Fremtschlüsseltabelle gibt. |
Re: Relation zwischen Tabellen -> FOREIGN KEY-Einschränku
Hallo,
schreibe nicht NULL, sondern eine Record mit 0 als PrimKey in die Master-Tabelle. Dann kannst du immer inner joins statt left joins benutzen, um an die Daten zu gelangen. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz