@@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)