Announcement

Collapse
No announcement yet.

tbl_Menue ElternID wie Fremdschlüssel auf gleiche Tabelle

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • tbl_Menue ElternID wie Fremdschlüssel auf gleiche Tabelle

    hallo,
    ich habe eine Tabelle tbl_menue mit u.a. 2 Feldern
    [menueUID], [menue_elternmenueUID]
    Wie kann ich einen Fremdschlüssel o.ä. anlegen dass er mir bei den ElternIDs nur Werte zulässt die auch als menueID vorhanden sind?

    Fremdschlüssel auf die gleiche Tabelle frisst der SQL-Server nicht :-(

  • #2
    Hallo openshinok,
    Fremdschlüssel auf die gleiche Tabelle frisst der SQL-Server nicht :-(
    Wie kommst Du darauf; hast Du es mal ausprobiert?
    Natürlich geht das:
    [highlight=SQL]
    CREATE TABLE [dbo].[ParentChild]
    (
    [Id] [int] NOT NULL,
    [ParentID] [int] NULL,
    CONSTRAINT [PK_ParentChild] PRIMARY KEY CLUSTERED
    ([Id] ASC )
    )
    GO

    ALTER TABLE [dbo].[ParentChild]
    WITH CHECK ADD CONSTRAINT [FK_ParentChild_ParentChild] FOREIGN KEY([ParentID])
    REFERENCES [dbo].[ParentChild] ([Id])
    GO

    ALTER TABLE [dbo].[ParentChild] CHECK CONSTRAINT [FK_ParentChild_ParentChild]
    GO


    -- TEST
    INSERT INTO ParentChild VALUES (1, NULL);
    INSERT INTO ParentChild VALUES (2, 1);
    GO
    -- Verstoß gegen Constrain
    INSERT INTO ParentChild VALUES (3, 11111);
    GO

    SELECT * FROM ParentChild;

    [/highlight]
    Zuletzt editiert von O. Helper; 20.07.2011, 14:32.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      hallo,
      klaro hab ich es ausprobiert. Allerdings habe ich es da evtl. noch über die grafische Oberfläche vom Management Studio versucht.

      eben nochmal und es ging

      Ich hab mir jetzt eine SP geschrieben die mir dynamisch die Statements für Fremdschlüssel schreibt und abfeuert. Über die grafische Oberfläche hab ich Probleme wenn ich lange Spaltennamen habe, da kann ich nicht mehr sehen was ich klicke....

      Comment

      Working...
      X