If you are on SQL2000 then SCOPE_IDENTITY() is prefered especially if you use triggers. Have a look at @@IDENTITY and SCOPE_IDENTITY in BOL. e.g.use tempdbgocreate table t1(colid int identity(1,1),col2 int NOT NULL)create table t2(colid int identity(1,1),col2 int NOT NULL)insert t2(col2) values(1)gocreate trigger t1_ins on t1for insertasinsert t2(col2)select col2 from insertedreturngodeclare @id1 int,@id2 int,@id3 int,@id4 intinsert t1(col2) values(1)select @id1=@@IDENTITY, @id2=SCOPE_IDENTITY(), @id3=IDENT_CURRENT('t1'), @id4=IDENT_CURRENT('t2')/* actual value is 1 for t1 but @@identity returns 2 becauseof the trigger inserting into t2 which has 1 row already*/select @id1 as '@@IDENTITY', @id2 as 'SCOPE_IDENTITY()', @id3 as 'IDENT_CURRENT t1', @id4 as 'IDENT_CURRENT t2'/*@@IDENTITY SCOPE_IDENTITY() IDENT_CURRENT t1 IDENT_CURRENT t2 ----------- ---------------- ---------------- ---------------- 2 1 1 2*/godrop trigger t1_insdrop table t1drop table t2goHTHJasper Smith