2013-12-17 3 views
1

У меня есть 2 таблицыТам нет первичных или кандидатов ключей в указанной таблице 'Вкладки'

Таблица № 1:

CREATE TABLE Tabs 
(
    TabId int, 
    UserId int, 
    TabName varchar(20), 
    SettingName varchar(5000), 

    PRIMARY KEY (TabId, userId), 
    FOREIGN KEY (UserId) REFERENCES UserProfile(UserId), 
) 

Таблица № 2:

CREATE TABLE TabsSettings 
(
    TabId int, 
    UserId int, 
    TabName varchar(20), 
    SettingName varchar(5000), 
    SettingValue varchar(5000), 
    ModifiedOn datetime, 
    CreatedOn datetime, 

    PRIMARY KEY (TabId, userId), 
    FOREIGN KEY (UserId) REFERENCES Tabs(UserId), 
    FOREIGN KEY (TabId) REFERENCES Tabs(TabIdId) 
) 

Когда я пытаясь выполнить мой второй запрос, он показывает эту ошибку

Msg 1776, Level 16, St ate 0, строка 1
В ссылочной таблице «Вкладки» не указаны первичные или потенциальные ключи, которые соответствуют списку столбцов ссылок в внешнем ключе «FK_ TabsSetti _UserI__7EF6D905».
Msg 1750, уровень 16, состояние 0, строка 1
Не удалось создать ограничение. См. Предыдущие ошибки.

+0

в первой команде таблицы, которую вы используете столбец из UserProfile, который должен существовать до создания вкладок таблицы, так для создания первой таблицы вам нужна уже созданная таблица UserProfile, имеющая столбец UserId Также во второй команде создания вы указываете TabIdId этот столбец нет в таблице Tabs –

ответ

4

Вы должны ссылаться как столбцов с одного внешним ключом:

FOREIGN KEY (TabId,UserId) REFERENCES Tabs(TabId,UserId) 
+0

ya проверил это и получил его. В любом случае спасибо – Vivekh

Смежные вопросы