2013-03-19 3 views
1

Как я могу создать один-ко-многим в одной таблице (MSSQL)Sql Server один-ко-многим в одной таблице

+0

Вы можете уточнить свой вопрос? Например, вы спрашиваете, как вы будете представлять такие отношения, или как вы будете обеспечивать целостность данных после создания такой связи? –

ответ

2

Вы можете добавить отношения с первичным ключом и внешним ключом в той же таблице, как и для любого другого отношения.

Следующий пример покажет вам, как добавить отношения между (pk_col) PK и (fk_col) FK в той же таблице:

ALTER TABLE dbo.some_table 
    ADD CONSTRAINT FK_some_table_some_table FOREIGN KEY 
    (
     fk_col 
    ) REFERENCES dbo.some_table 
    (
     pk_col 
    ) 
+0

Вы упомянули, что 'pk_col' - это PK, а' fk_col' - FK. Тогда ваш ответ должен был быть следующим: 'ADD CONSTRAINT fk_name FOREIGN KEY (fk_col) ССЫЛКИ some_table (pk_col)' –

+0

@von v. - Действительно, я допустил ошибку при замене имен моих столбцов на pk_col и fk_col. Я отредактирую оригинал, чтобы исправить. Спасибо! :) –

+1

Не беспокойтесь @ Мартин Паркин –

3

Так же, как вы бы через две таблицы: создать ограничение внешнего ключа.

3

Попробуйте так:

create table tab1 
(
    id int, 
    id1 int, 
    primary key (id) 
) 

alter table tab1 
    add constraint fk_tab1 foreign key (id1) 
    references tab1 (id) 
0

Вам нужен второй стол, который держит набор из Идентификатор каждого из двух элементов, связанных в таблице.