Ir al contenido


Foto

[RESUELTO] Script para backup


  • Por favor identifícate para responder
2 respuestas en este tema

#1 marthamelo

marthamelo

    Advanced Member

  • Miembros
  • PipPipPip
  • 106 mensajes
  • LocationA Coruña

Escrito 14 octubre 2011 - 01:20

Hola una vez más, hoy estoy tratando de crear un script para un backup de una BD, cosa que soy nueva en ello, busque información en la red y encontré esto al llevarlo a la práctica y comprobar el scrip en el sql me da 2 errores  y no logro entender, a ver si alguien puede ilustrarme como siempre  hacéis muy amablemente aquí les dejo el script y los errores 
DECLARE @strDatabase nvarchar(50)
DECLARE @strFolder nvarchar(500)

SET @strDatabase = N'MYBD'

SET @strForder = N 'D:\BKNx'

DECLARE @strBackupName nvarchar(100)
SET @strBackupName = @strDatabase + N' '
+ STR(DATEPART(YEAR, @tToday), 4, 0)
+ REPLACE(STR(DATEPART(month, @tToday), 2, 0), N'', N'0')
+ REPLACE(STR(DATEPART(day, @tToday), 2, 0), N' ', N'0')
+ REPLACE(STR(DATEPART(hour, @tToday), 2, 0), N' ', N'0')
+ REPLACE(STR(DATEPART(minute, @tToday), 2, 0), N' ', N'0')
DECLARE @strBackupFile nvarchar(600)
SET @strBackupFile = @strFolder + N'\' + @strBackupName + N'.bak'
BACKUP DATABASE @strDatabase
TO DISK = @strBackupFile
WITH
NOFORMAT,
INIT,
SKIP,
NAME = @strBackupName


y estos los errores
Mens. 10Z, nivel 15, estado1, linea6
sintaxis incorrecta cerca de 'D:\BNKx'.
mens. 137, nivel 15 Estado 2, Linea 10
debe declarar la variable escalar '@tToday'.


Nota:Para más información  les digo que este script es para ejecútalo en una tarea del sistema pues utilizo sql 2005 Expres
  • 0

#2 andy

andy

    Member

  • Miembros
  • PipPip
  • 47 mensajes
  • Locationespana

Escrito 14 octubre 2011 - 04:14

Hola marthamelo, mira tú scripts no está muy te explico por qué de esos errores

El primero es muy simple  tienes un espacio entre la N y la ruta debe quedar así  N'D:\BKNx'.
El segundo es que no tienes declarado el tToday. Co,o hacerlo? Bien así  poniendo esto después del set @forder
DECLARE @tToday datetime
SET @tToday = GETDATE()

Ahora te digo que tienes un tercer error y es que tienes de clarada la variable @strfolder y luego en la linea 4 la llamas @strforder
Bueno espero haberte sido útil  salu2

  • 0

#3 marthamelo

marthamelo

    Advanced Member

  • Miembros
  • PipPipPip
  • 106 mensajes
  • LocationA Coruña

Escrito 15 octubre 2011 - 11:13

Gracias andy. es verdad lo de el tercer error ya lo arreglé
  • 0




IP.Board spam blocked by CleanTalk.