none
Error al realizar RESTORE desde vb.2012 RRS feed

  • Pregunta

  • Hola amigos del foro: Estoy realizando un RESTORE de una bd SQL Server 2012 desde un programa en vb.vs2012 con el siguiente codigo:

    strSQL="RESTORE DATABASE Inventarios FROM disk='I=\Respaldos\INV20170615.bak' WITH REPLACE;"

    Public Function QueryDataTable(strSql As String) As Boolean

       Dim TodoBien As Boolean = False

       Try
            Dim cmd As New SqlCommand(strSql, MyConec)
            cmd.CommandType = CommandType.Text
            cmd.ExecuteNonQuery()
            TodoBien = True
       Catch ex As Exception
           TodoBien = False
       End Try

       Return TodoBien
    End Function

    Pero al realizar el respaldo me sale el siguiente mensaje: "RESTORE cannot process database  because it is in use by this session. It is recommended that the master database be used when performing this operation."

    No he podido encontrar la solución en todo el foro. Me gustaría alguien pueda ayudarme.

    Saludos y muchas gracias.

    viernes, 15 de septiembre de 2017 23:31

Respuestas

  • El mensaje del error es bastante explicito y deja claro lo que debes de hacer: cambiar de contexto, sugiriendo la base de datos 'master'. Puedes llevar a cabo lo indicando modificando el valor del atributo 'Initial catalog' a 'master' (en la cadena de conexión), o ejecutando el comando 'USE master', algo como: 'strSQL="USE master; RESTORE DATABASE Inventarios ...', no he comprobado que resulte pero imagino que es suficiente.


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Marcado como respuesta Carlos Cuenta domingo, 17 de septiembre de 2017 17:03
    viernes, 15 de septiembre de 2017 23:49

Todas las respuestas

  • El mensaje del error es bastante explicito y deja claro lo que debes de hacer: cambiar de contexto, sugiriendo la base de datos 'master'. Puedes llevar a cabo lo indicando modificando el valor del atributo 'Initial catalog' a 'master' (en la cadena de conexión), o ejecutando el comando 'USE master', algo como: 'strSQL="USE master; RESTORE DATABASE Inventarios ...', no he comprobado que resulte pero imagino que es suficiente.


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Marcado como respuesta Carlos Cuenta domingo, 17 de septiembre de 2017 17:03
    viernes, 15 de septiembre de 2017 23:49
  •  Gracias Willams Morales, te agradezco tu tiempo y ayuda.

    Saludos.







                                                                                                                

    domingo, 17 de septiembre de 2017 17:03