Para los que aún no utilicéis el driver oficial de SQL Server, os dejo un pequeño tip para recuperar el último id insertado en una consulta de SQL Server con la obsoleta extensión mssql de php.
$q = mssql_query("INSERT INTO TableName(...) VALUES(...); SELECT LAST_INSERT_ID=@@IDENTITY");
$r = mssql_fetch_assoc($q);
— Posted by admin | Posted in Desarrollo web | Posted on August 24, 2010




No se si es compatible con la extensión de mssql para php, pero yo por malas experiencias vividas con @@IDENTITY, siempre he preferido utilizar SCOPE_IDENTITY(), ya que devuelve el ultimo valor de tipo Identity insertado en la sesión actual, y así te aseguras en el nanosegundo que se realiza la consulta, otro proceso ajeno no haya realizado una inserción en una tabla con un campo de este tipo. Porque @@IDENTITY recupera el último ID introducido en toda la base de datos.
Nosotros tuvimos problemas en el pasado con esta variable a la hora de programar TRIGGERS en SQL-SERVER 2005.
Saludos y felicidades por el blog
Comentario de Juan — August 30, 2010 @ 2:29 pm