none
Sintaxis de script RRS feed

  • Pregunta

  • Hola,

    Soy nuevo en el foro y en SQL, por lo tanto disculpen si hago alguna pregunta básica, formulo mal la misma o genero en el lugar incorrecto mi caso.El tema que tengo que crear un trabajo diario en una instancia sql 2005 que restaure diariamente las bases creadas, pero resulta que el la ruta donde tengo los backup se guardan los 2 últimos días y yo necesito que el script del trabajo programado busque el mas reciente o ultimo creado.Convoco la ayuda y sabiduría del que sepa como sera la sintaxis del script.Gracia

    Saludos

    • Cambiado Fernando Reyes viernes, 6 de mayo de 2011 6:54 Es una pregunta de T-SQL (De:General)
    miércoles, 4 de mayo de 2011 16:01

Respuestas

  • Hola Cipolleti,

    Si tu eres quien creas los backups, podrías crearlos ocn el nombre que quieras y la fecha en modo ANSI es decir backupAAAAMMMDD.bak.

    Despues, como hay que ver los ficheros que hay, necesitarás acceso al sistema de archivos, por lo que aunque pueda ser un problema de seguridad, deberás habilitar xp_cmdshell, esto se hace con  el comando sp_configure

    por si acaso

    exec sp_configure 'show advanced options',1;
    reconfigure;
    
    go
    exec sp_configure 'xp_cmdshell',1
    reconfigure

    despues  puedes grabar en una tabla el resultado de hacer dir.

    create table t (salida nvarchar(1000))
    
    insert into t
    exec xp_cmdshell 'dir /b';
    
    

    no te olvides de poner la ruta donde esté el backup. (el /b es para que solo saque nombre de archivo.

    con esto tienes en la tabla t la lista de ficheros puedes recorrerla ordenadamente y ver cual es el último o seleccionar el archivo  con alguna instrucción como

    Select top(1) salida from t where salida like 'nombre%' order by 1

    así sabras el nombre de archivo y a partir de ahí montarías la instrucción de backup.

    Espero que te sirva.

     


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    viernes, 6 de mayo de 2011 7:17
    Moderador
  • Tablas del historial de copias de seguridad

    SQL Server incluye las siguientes tablas del historial de copias de seguridad que realizan un seguimiento de la actividad de copia de seguridad:

    Al realizar una restauración, si el conjunto de copia de seguridad aún no se ha registrado en la base de datos msdb, las tablas del historial de copias de seguridad se podrían modificar.

    Espero que te sirva de ayuda


     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008

    viernes, 6 de mayo de 2011 22:53

Todas las respuestas

  • ¿De qué lenguaje de scripting estamos hablando?
    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    jueves, 5 de mayo de 2011 6:50
  • Hola Fernando y gracias por responder, no se si entendi bien la pregunta pero seria en "transact-SQL"

     

    Saludos

    jueves, 5 de mayo de 2011 13:14
  • En ese caso, traslado la pregunta al foro de SQL.
    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    viernes, 6 de mayo de 2011 6:54
  • Hola Cipolleti,

    Si tu eres quien creas los backups, podrías crearlos ocn el nombre que quieras y la fecha en modo ANSI es decir backupAAAAMMMDD.bak.

    Despues, como hay que ver los ficheros que hay, necesitarás acceso al sistema de archivos, por lo que aunque pueda ser un problema de seguridad, deberás habilitar xp_cmdshell, esto se hace con  el comando sp_configure

    por si acaso

    exec sp_configure 'show advanced options',1;
    reconfigure;
    
    go
    exec sp_configure 'xp_cmdshell',1
    reconfigure

    despues  puedes grabar en una tabla el resultado de hacer dir.

    create table t (salida nvarchar(1000))
    
    insert into t
    exec xp_cmdshell 'dir /b';
    
    

    no te olvides de poner la ruta donde esté el backup. (el /b es para que solo saque nombre de archivo.

    con esto tienes en la tabla t la lista de ficheros puedes recorrerla ordenadamente y ver cual es el último o seleccionar el archivo  con alguna instrucción como

    Select top(1) salida from t where salida like 'nombre%' order by 1

    así sabras el nombre de archivo y a partir de ahí montarías la instrucción de backup.

    Espero que te sirva.

     


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    viernes, 6 de mayo de 2011 7:17
    Moderador
  • Tablas del historial de copias de seguridad

    SQL Server incluye las siguientes tablas del historial de copias de seguridad que realizan un seguimiento de la actividad de copia de seguridad:

    Al realizar una restauración, si el conjunto de copia de seguridad aún no se ha registrado en la base de datos msdb, las tablas del historial de copias de seguridad se podrían modificar.

    Espero que te sirva de ayuda


     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008

    viernes, 6 de mayo de 2011 22:53
  • Gracias a todos por responder, miro y pruebo los comentarios y les aviso si me sirvió o que pasa.

     

    Saludos


    miércoles, 11 de mayo de 2011 15:37