ВСТАВИТЬ данные рефлексивной связи «один ко многим» - PullRequest
0 голосов
/ 11 августа 2010

У меня есть таблица с рефлексивной ассоциацией «один ко многим».

Мне нужно вставить первое значение, отключающее временное ограничение. Есть идеи как это сделать?

Я использую MS SQL 2008, спасибо, ребята, за вашу поддержку!

  CREATE TABLE dbo.CmsCategories
    (
        CategoryId      int             NOT NULL    IDENTITY (0,1) -- Seed = 0 and Increment= 1
            CONSTRAINT PK_CmsCategories_CategoryId PRIMARY KEY,
        ParentOf        int             NOT NULL
            CONSTRAINT DF_CmsCategories_ParentOf DEFAULT 0  
    );
ALTER TABLE dbo.CmsCategories
ADD CONSTRAINT FK_CmsCategories_ParentOf FOREIGN KEY (ParentOf) REFERENCES dbo.CmsCategories(CategoryId); -- One-to-many Reflexive association
GO

    INSERT INTO dbo.CmsCategories
    (ParentOf)
    VALUES
    (0);

1 Ответ

0 голосов
/ 11 августа 2010

Я нашел решение, скажите мне, что вы думаете, спасибо!

-- CmsCategories: Disable constraint one-to-many reflexive association to add first row
    ALTER TABLE dbo.CmsCategories
    NOCHECK
    CONSTRAINT
    FK_CmsCategories_ParentOf;

    ---- CmsCategories: Insert first row - Root value
    INSERT INTO dbo.CmsCategories
    (Title, MetaDescription, MetaKeyword, Summary, IsPublished, ParentOf)
    VALUES
    ('Homepage','Homepage','Homepage','Homepage',1,0);

    -- CmsCategories: Enable constraint one-to-many reflexive association
    ALTER TABLE dbo.CmsCategories
    CHECK
    CONSTRAINT
    FK_CmsCategories_ParentOf;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...