Black log

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

1 Comentario
dejar un comentario »

  • 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

» RSS para los comentarios de éste post.
» TrackBack URL

Deja un comentario

Notify me of followup comments via e-mail. You can also subscribe without commenting.