@@IDENTITY 为内置全局函数。

create table TestIdent(
IDCol int identity primary key
)
create table TestChild(
IDCol int primary key
foreign key references TestIdent(IDCol)
)
--insert成功,因为IDCol是indentity类型,而IDCol为新建表所以从1开始
--@@IDENTITY的值变成1
INSERT INTO TestIdent DEFAULT VALUES
--insert成功,因为@@IDENTITY的值是上次插入时的IDENTITY的值
insert into TestChild values(@@IDENTITY)
select * from TestChild
--insert失败,因为上次insert后,由于上次插入的列不是identity类型,所以@@INDENTITY变成NULL
--而NUll值无法插入作为主键的列中
insert into TestChild values(@@IDENTITY)