Ejecutar un RESTORE desde un Procedimiento

15/09/2004 - 15:03 por Lara | Informe spam
Hola!

Estoy intentando ejecutar un Restore de una base de datos desde un
procedimiento almacenado y no me permite ejecutarlo..
Es posible hacerlo?
Si ejecuto el Restore desde el analizador de consultas no tengo ningún
problema.

Gracias!
Lara

Preguntas similare

Leer las respuestas

#1 Maxi
15/09/2004 - 15:13 | Informe spam
Hola Lara, me pasas el codigo de como lo estas haciendo y el error que
arroja?


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Lara" escribió en el mensaje
news:
Hola!

Estoy intentando ejecutar un Restore de una base de datos desde un
procedimiento almacenado y no me permite ejecutarlo..
Es posible hacerlo?
Si ejecuto el Restore desde el analizador de consultas no tengo ningún
problema.

Gracias!
Lara











Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.748 / Virus Database: 500 - Release Date: 01/09/2004
Respuesta Responder a este mensaje
#2 Lara
15/09/2004 - 16:22 | Informe spam
Maxi, he modificado un "Execute @sentencia" por un "Execute sp_executesql
@sentencia" y ya me funciona. No recuerdo qué diferencia había entre ambas
ejecuciones, pero está claro que con la primera no me funciona.


El código que tenía antes era:

CREATE PROCEDURE MP_EjecutarRestore
@Fichero varchar(50)
AS
Declare @Sentencia varchar(500)

Set @Sentencia="RESTORE DATABASE Pruebas FROM
DISK='E:\MSSQL7\BACKUP\Pruebas\" + @Fichero + "'"
Execute @Sentencia
GO

Ejecutaba el procedimiento, desde el analizador de consultas, pasándole
como parámetro el nombre del fichero:
Exec MP_EjecutarRestore @Fichero='pruebas_db_200409142333.bak' y me daba
este error:

No se encontró el procedimiento almacenado 'RESTORE DATABASE Pruebas FROM
DISK='E:\MSSQL7\BACKUP\Pruebas\pruebas_db_200409142333.bak'.


Ahora he hecho esa pequeña modificación del Execute:

CREATE PROCEDURE MP_EjecutarRestore1
@Fichero nvarchar(50)
AS
Declare @Sentencia varchar(500)

Set @Sentencia="RESTORE DATABASE Pruebas FROM
DISK='E:\MSSQL7\BACKUP\Pruebas\" + @Fichero + "'"
Execute sp_executesql @Sentencia
GO

Y ya me funciona!

Gracias!
Lara





"Maxi" escribió en el mensaje
news:Os%
Hola Lara, me pasas el codigo de como lo estas haciendo y el error que
arroja?


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Lara" escribió en el mensaje
news:
> Hola!
>
> Estoy intentando ejecutar un Restore de una base de datos desde un
> procedimiento almacenado y no me permite ejecutarlo..
> Es posible hacerlo?
> Si ejecuto el Restore desde el analizador de consultas no tengo ningún
> problema.
>
> Gracias!
> Lara
>
>
>
>
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.748 / Virus Database: 500 - Release Date: 01/09/2004


Respuesta Responder a este mensaje
#3 ulises
15/09/2004 - 17:48 | Informe spam
Si vas a usar el EXECUTE para ejecutar una cadena de caracteres, ésta
debe ir entre paréntesis.

EXECUTE ( @sentencia )

Saludos,
Ulises

On Wed, 15 Sep 2004 16:22:41 +0200, "Lara" wrote:

Maxi, he modificado un "Execute @sentencia" por un "Execute sp_executesql
@sentencia" y ya me funciona. No recuerdo qué diferencia había entre ambas
ejecuciones, pero está claro que con la primera no me funciona.


El código que tenía antes era:

CREATE PROCEDURE MP_EjecutarRestore
@Fichero varchar(50)
AS
Declare @Sentencia varchar(500)

Set @Sentencia="RESTORE DATABASE Pruebas FROM
DISK='E:\MSSQL7\BACKUP\Pruebas\" + @Fichero + "'"
Execute @Sentencia
GO

Ejecutaba el procedimiento, desde el analizador de consultas, pasándole
como parámetro el nombre del fichero:
Exec MP_EjecutarRestore @Fichero='pruebas_db_200409142333.bak' y me daba
este error:

No se encontró el procedimiento almacenado 'RESTORE DATABASE Pruebas FROM
DISK='E:\MSSQL7\BACKUP\Pruebas\pruebas_db_200409142333.bak'.


Ahora he hecho esa pequeña modificación del Execute:

CREATE PROCEDURE MP_EjecutarRestore1
@Fichero nvarchar(50)
AS
Declare @Sentencia varchar(500)

Set @Sentencia="RESTORE DATABASE Pruebas FROM
DISK='E:\MSSQL7\BACKUP\Pruebas\" + @Fichero + "'"
Execute sp_executesql @Sentencia
GO

Y ya me funciona!

Gracias!
Lara





"Maxi" escribió en el mensaje
news:Os%
Hola Lara, me pasas el codigo de como lo estas haciendo y el error que
arroja?


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Lara" escribió en el mensaje
news:
> Hola!
>
> Estoy intentando ejecutar un Restore de una base de datos desde un
> procedimiento almacenado y no me permite ejecutarlo..
> Es posible hacerlo?
> Si ejecuto el Restore desde el analizador de consultas no tengo ningún
> problema.
>
> Gracias!
> Lara
>
>
>
>
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.748 / Virus Database: 500 - Release Date: 01/09/2004





Respuesta Responder a este mensaje
#4 Lara
16/09/2004 - 11:12 | Informe spam
Vaya despiste!!! Pero si lo he hecho cientos de veces! ;-)
Gracias!



"ulises" escribió en el mensaje
news:
Si vas a usar el EXECUTE para ejecutar una cadena de caracteres, ésta
debe ir entre paréntesis.

EXECUTE ( @sentencia )

Saludos,
Ulises

On Wed, 15 Sep 2004 16:22:41 +0200, "Lara" wrote:

>Maxi, he modificado un "Execute @sentencia" por un "Execute sp_executesql
>@sentencia" y ya me funciona. No recuerdo qué diferencia había entre


ambas
>ejecuciones, pero está claro que con la primera no me funciona.
>
>
>El código que tenía antes era:
>
>CREATE PROCEDURE MP_EjecutarRestore
>@Fichero varchar(50)
>AS
>Declare @Sentencia varchar(500)
>
>Set @Sentencia="RESTORE DATABASE Pruebas FROM
>DISK='E:\MSSQL7\BACKUP\Pruebas\" + @Fichero + "'"
>Execute @Sentencia
>GO
>
>Ejecutaba el procedimiento, desde el analizador de consultas, pasándole
>como parámetro el nombre del fichero:
>Exec MP_EjecutarRestore @Fichero='pruebas_db_200409142333.bak' y me


daba
>este error:
>
>No se encontró el procedimiento almacenado 'RESTORE DATABASE Pruebas


FROM
>DISK='E:\MSSQL7\BACKUP\Pruebas\pruebas_db_200409142333.bak'.
>
>
>Ahora he hecho esa pequeña modificación del Execute:
>
>CREATE PROCEDURE MP_EjecutarRestore1
>@Fichero nvarchar(50)
>AS
>Declare @Sentencia varchar(500)
>
>Set @Sentencia="RESTORE DATABASE Pruebas FROM
>DISK='E:\MSSQL7\BACKUP\Pruebas\" + @Fichero + "'"
>Execute sp_executesql @Sentencia
>GO
>
>Y ya me funciona!
>
>Gracias!
>Lara
>
>
>
>
>
>"Maxi" escribió en el mensaje
>news:Os%
>> Hola Lara, me pasas el codigo de como lo estas haciendo y el error que
>> arroja?
>>
>>
>> Salu2
>> Maxi
>> Buenos Aires - Argentina
>> Desarrollador Microsoft 3 Estrellas .NET
>> Nunca consideres el estudio como una obligación sino como
>> una oportunidad para penetrar en el bello y maravillosos
>> mundo del saber.
>> - Albert Einstein
>>
>>
>>
>> "Lara" escribió en el mensaje
>> news:
>> > Hola!
>> >
>> > Estoy intentando ejecutar un Restore de una base de datos desde un
>> > procedimiento almacenado y no me permite ejecutarlo..
>> > Es posible hacerlo?
>> > Si ejecuto el Restore desde el analizador de consultas no tengo


ningún
>> > problema.
>> >
>> > Gracias!
>> > Lara
>> >
>> >
>> >
>> >
>> >
>> >
>>
>>
>>
>> Outgoing mail is certified Virus Free.
>> Checked by AVG anti-virus system (http://www.grisoft.com).
>> Version: 6.0.748 / Virus Database: 500 - Release Date: 01/09/2004
>>
>>
>

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida