2010-07-07 3 views
2

Bit ржавого на SQL стороны, я не прикасался в то времяНе может увидеть ограничение внешнего ключа на SQL Server 2008

Я добавил ограничение внешнего ключа с помощью диаграммы и четко говорю, что существует связь Ф.К..

Однако при написании таблицы или просмотре ключей в проводнике SQL Server я не вижу серый ключ.

Я что-то упустил? Не уверен, что я делаю это правильно.

Как вы создаете программу программно между двумя таблицами? Должен ли он отображаться в проводнике под клавишами?

Спасибо за любой вклад

ответ

2

Чтобы создать отношения FK, используйте следующий синтаксис:

ALTER TABLE dbo.ChildTable 
    ADD CONSTRAINT FK_ChildTable_ParentTable 
    FOREIGN KEY (FK column in child table) 
    REFERENCES dbo.ParentTable(column in parent table) 

и, возможно, определить, что происходит на UPDATE или DELETE первичного ключа в родительской таблице:

ON DELETE ...... (CASCADE, NO ACTION, SET NULL) 
    ON UPDATE ...... (CASCADE, NO ACTION, SET NULL) 

Вы должны иметь возможность запрашивать данные словаря данных, чтобы проверить, что FK ограничение действительно есть:

SELECT 
    fk.NAME, 
    OBJECT_NAME(parent_object_id) 'Child table', 
    OBJECT_NAME(referenced_object_id) 'Parent table', 
    fk.* 
FROM sys.foreign_keys fk 

Это будет список всех существующих внешних ключей в вашей текущей базе данных.

+0

Hi, Только что просмотрел ваше сообщение. Большое спасибо за ваше время. Приобретая отношения, они там, тем не менее, пока не отображаются в Проводнике мммм Отсутствует что-то ??? – user9969

+0

@ devnet247: не уверен - есть ли у вас какие-либо фильтрации? Вы уверены, что ищете один и тот же сервер/базу данных? Или вы запрашиваете на своем локальном компьютере, но Explorer показывает ваш сервер dev? (случилось со мной раньше .....) –

+0

Теперь они все знают и не знают почему. Thats alot – user9969

4

Внешние ключи в дизайнере хранятся до тех пор, пока они не будут сохранены. Найдите открытую вкладку дизайна, которая не была сохранена. Сохраните его и обновите базу данных. Должны появиться внешние ключи.

0

Не забудьте сохранить то, что вы изменили, и обновить Object Explorer. Для моего случая я могу видеть значок серого ключа для моего внешнего ключа в папках «Столбцы» и «Ключи». Однако я не вижу, что это папка «Ограничения». По-видимому, это считается нормальным?

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