944 063 154 carrito-compra-linube

Recuperando una BBDD SQL Server y su último ID insertado

Publicado enDesarrollo y Programación

En este post vamos a hablar sobre diferentes recuperaciones en SQL Server; de cómo recuperar una base de datos que no contenga ningún archivo de log y del proceso a seguir para conseguir el último ID insertado en SQL.

Recuperar una base de datos

Si por cualquier motivo no tienes el archivo de transacciones (.ldf), lo más seguro es que obtengas un error de este tipo a la hora de intentar adjuntar una base de datos desde el Wizard de SQL. Si quieres recuperar una base de datos sin archivo de log en SQL Server tendrás que seguir los siguientes pasos:

recuperar una bbdd-sql-recuperaciones en sql server

Suponiendo que el .mdf esté en buenas condiciones, puedes probar a adjuntar la base de datos y forzar a la reconstrucción del archivo de transacciones.

El siguiente ejemplo muestra cómo adjuntar la base de datos, que en este caso hemos llamado «sergiosainz», indicando el path a mi .mdf. En tu caso, deberás sustituir esos valores por los que se correspondan con tu base de datos; de lo contrario no será posible recuperar la base de datos.

USE [master]
GO
CREATE DATABASE [sergiosainz] ON
(FILENAME = N’C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLDATAsergiosainz.mdf’)
FOR ATTACH_REBUILD_LOG
GO

Si, en vez de recuperar una base de datos, necesitas rescatar un ID, entonces te interesa la segunda parte de nuestro post.

Recuperar el último ID insertado

¿Eres uno de los que aún no utiliza el driver oficial de SQL Server? Si este es tu caso, a continuación, te dejamos un pequeño tip para recuperar el último ID insertado en una consulta de SQL Server con la obsoleta extensión de PHP para MSSQL. Aunque pueda no parecerlo, es un proceso que resulta muy sencillo y para el que no hacen falta conocimientos avanzados de programación.

Para recuperar el último ID insertado en tu base de datos MSSQL, necesitarás un script similar al que te indicamos a continuación.


$q = mssql_query("INSERT INTO TableName(...) VALUES(...); SELECT ; LAST_INSERT_ID=@@IDENTITY");
$r = mssql_fetch_assoc($q);

Como puedes comprobar, la ejecución de este script no entraña ninguna dificultad. Siguiendo este simple proceso, podremos recuperar el último ID insertado en una consulta de SQL Server.

Si quieres saber más acerca del lenguaje SQL, échale un vistazo a nuestro post sobre Consultas SQL. En el que hablamos sobre cuáles las consultas SQL que más se ejecutan y la cantidad de CPU que consumen. También te mostramos cómo añadir una interfaz de red en SQL Server.

Si tienes cualquier duda en lo que se refiere a bases de datos, estamos a tu disposición a través de nuestras vías de soporte. No dudes en escribirnos mediante el sistema de tickets o correo electrónico para lo que sea. Y, ya sabes, no te olvides de pasar de vez en cuando por nuestro blog sobre tecnología y programación.