在SQL Server 2012中,我有一个带有自引用外键的表,该外键引用一个Identity
列的主键列。你能告诉我如何插入外键引用同一行主键的行吗?
Create Table MyTable
(
PersonID int primary key Identity(1,1),
PersonName varchar(20) not null,
HeadofPersonID int not null references MyTable(PersonID)
)
我需要插入的行:
1, 'Mickey Mouse', 1
在这种情况下,Mickey拥有身份生成的主键1
,而Mickey也是他自己(可能还有其他人)的负责人。在insert语句中的外键中我需要提到什么?
答案 0 :(得分:4)
从外键列声明中删除not null
约束,并在 HeadofPersonID 中插入NULL
作为层次结构的头部:
Create Table MyTable
(
PersonID int primary key Identity(1,1),
PersonName varchar(20) not null,
HeadofPersonID int references MyTable(PersonID)
)