Mostrando entradas con la etiqueta SQL Server 2005. Mostrar todas las entradas
Mostrando entradas con la etiqueta SQL Server 2005. Mostrar todas las entradas

jueves, 28 de octubre de 2010

Saber el ID del ultimo registro agregado

Hay veces que necesitamos saber el Id del último registro agregado a una tabla, por diversas razones, validación, para correr un proceso, etc.
Si es una tabla sin un campo identity, podemos utilizar la siguiente técnica

SELECT TOP 1 [ArticuloID]
FROM Articulos
order by articuloid desc

Si tiene un campo identity podemos hacerlo de la siguiente manera

-- Buscar el valor de la semilla
SELECT IDENT_CURRENT ('pubarticulos') AS LastId;

Ojo.. si es un campo autoincremental y hemos borrado registros, la ultima función me regresa el valor en el que va la semilla.. no el del ultimo registro activo.

También despues de ejecutar un INSERT podemos obtener el último ID con la variable
@@IDENTITY, por lo que podemos utilizar las siguientes instrucciones de ejemplo

SELECT @@IDENTITY AS 'Identity';

o para regresarlo en un procedimiento

Return @@IDENTITY

viernes, 21 de mayo de 2010

Restaurar una base de datos de SQL Server 2008 en un servidor SQL Server 2005

 

Quise restaurar una base de datos de un servidor SQL Server 2008 a un servidor SQL Server 2005 y me di cuenta de lo que suponía que no se puede, por lo menos no de una manera directa con Backup y Restore. Al modo, no me quede con las ganas ni con la duda, así que a investigar.

Lo tenemos que hacer con la opción de scripting, esa fue la forma que halle para resolver el problema. A continuación detallo el proceso.

 

Generar el Script

Ya una vez conectado al servidor, hacemos lo siguiente:

  1. Seleccionas la base de datos, le damos click derecho, task y generate scripts.
    • image
  2. La primer pantalla de bienvenida le damos siguiente.
  3. Seleccionamos la base de datos y marcamos la opción de Script all objects in the selected database.
    • image
  4. Ahora nos presenta una pantalla de opciones, vamos a seleccionar las mas importantes.
  5. Primero cambiamos la opcion Script for Server Version a SQL Server 2005.
    • image
  6. Ponemos la opción Script DataBase Create a verdadero si es una nueva base de datos.
  7. También ponemos la opción Script Data a verdedero.
  8. Existen otras opciones como de indices de texto completo y llaves primarias que configuraremos según sea el caso.
  9. Ya una vez que estamos contentos con nuestra configuración damos siguiente.
  10. En la opción de salida, le damos Script to file, le indicamos el archivo de salida y le damos siguiente.
    • image
  11. Por ultimo nos presenta una pantalla donde revisamos las opciones seleccionadas. Las analizamos y si todo esta bien le damos Finish.

Corregir el script

  1. Ya una vez que finalizó el proceso, revisamos el script. Hay que poner atención a lo siguiente:
    1. USE

      [master]

      GO

      /****** Object: Database [Ejemplo] Script Date: 05/21/2010 10:54:09 ******/

      CREATE

      DATABASE [Ejemplo] ON PRIMARY

      (

      NAME = N'ConacytWSData', FILENAME = N'D:\Archivos de programa\Microsoft SQL Server\MSSQL10.SQLSERVER2008\MSSQL\DATA\Ejemplo.mdf' , SIZE = 7168KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )

      LOG ON

      (

      NAME = N'ConacytWSData_log', FILENAME = N'D:\Archivos de programa\Microsoft SQL Server\MSSQL10.SQLSERVER2008\MSSQL\DATA\Ejemplo.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)

      GO

  2. Hay que notar que hace referencia a una unidad local, que talvez ni existe en el otro servidor, así que hay que modificarlo para que quede en el directorio de la instalación de nuestra instancia de SQL Server 2005.
  3. También hay que poner en comentario las siguientes líneas:
    1. --EXEC sys.sp_db_vardecimal_storage_format N'Ejemplo', N'ON'

      --GO

      USE

      [Ejemplo]

      GO

Ejecutar el script

Ahora nada más queda entrar a la instancia de SQL Server 2005 y correr el script…espero todo vaya bien…

salu2 y byte!!!