locked
averiguar la ruta del DATA x SP RRS feed

  • Pregunta

  • BUENA TARDE, EXISTE ALGUN SP PARA CONOCER LA RUTA DOND X DEFECTO SE COLOCAN LOS .MDF Y .LDF DE UNA NUEVA DB.?
    lunes, 28 de junio de 2010 20:25

Respuestas

  • Prueba con este otro script, al que le agregué el @@servicename:

    DECLARE @value varchar(100) 
    DECLARE @key varchar(200)
    
    SET @key = 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.' + @@servicename + '\Setup'
     
    EXEC master.dbo.xp_regread @rootkey='HKEY_LOCAL_MACHINE', 
      @key=@key, 
      @value_name='SQLDataRoot', 
      @value=@value OUTPUT, 
      @output = 'no_output' 
     
    SELECT @value as "Path a los datos"
    

    Suerte!


    Para el correcto funcionamiento y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido útil por favor Vótala.

    Gustavo A. Cantero
    Scientia® Soluciones Informáticas
    MCP - MCSD - MCTS - MCPD
    http://www.scientia.com.ar
    http://www.programandoamedianoche.com
    http://www.gustavo-cantero.com.ar
    http://twitter.com/ScientiaIT
    http://facebook.com/ScientiaIT
    • Marcado como respuesta acuariolo martes, 29 de junio de 2010 22:28
    lunes, 28 de junio de 2010 21:25
  • Hola.

    Eso es porque sigue estando en la ruta por defecto de instalación. Puedes grabar la clave y a partir de ese momento se leerá siempre del registro:

    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', REG_SZ, N'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA'
    Esta sería la ruta por defecto en una instancia de SQL Server 2008 R2, pero puedes mirarlo en las propiedades del servidor para saber qué tienes que poner en cada caso.


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    lunes, 28 de junio de 2010 21:33
    Moderador

Todas las respuestas

  • Puedes obtenerlo leyendo la registry, de esta manera:

    DECLARE @value varchar(100) 
     
    EXEC master.dbo.xp_regread @rootkey='HKEY_LOCAL_MACHINE', 
        @key='SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.MSSQLServer\Setup', 
        @value_name='SQLDataRoot', 
        @value=@value OUTPUT, 
        @output = 'no_output' 
     
    SELECT @value as "Path a los datos"
    
    Suerte!
    Para el correcto funcionamiento y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido útil por favor Vótala.

    Gustavo A. Cantero
    Scientia® Soluciones Informáticas
    MCP - MCSD - MCTS - MCPD
    http://www.scientia.com.ar
    http://www.programandoamedianoche.com
    http://www.gustavo-cantero.com.ar
    http://twitter.com/ScientiaIT
    http://facebook.com/ScientiaIT
    lunes, 28 de junio de 2010 20:37
  • GUSTAVO DEVUELVE NULL, NECESITARIA CORRER ESTE SCRIP EN DIERENTES MAQUINAS, Y ESTA RUTA VARIA ENTRE MAQUINAS X EJEMPLO:

     

    MAQUINA1 : 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.MSSQLServer\Setup'

    MAQUINA2 : 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.SQLServer\Setup'

    lunes, 28 de junio de 2010 21:05
  • Hola.

    Prueba con xp_instance_regread:

    EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData'

    Y para el log, lo mismo pero sobre "DefaultLog".

    Si no lo logras, nos dices.


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    lunes, 28 de junio de 2010 21:11
    Moderador
  • ALBERTO, SI LO CORRO TAL CUAL NO FUNCIONA, Y SIGUIENDO LA PISTA AL REGISTRO NO EXISTE NINGUNA CLAVE LLAMADA DefaultData NI DefaultLog. :(

    lunes, 28 de junio de 2010 21:22
  • Prueba con este otro script, al que le agregué el @@servicename:

    DECLARE @value varchar(100) 
    DECLARE @key varchar(200)
    
    SET @key = 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.' + @@servicename + '\Setup'
     
    EXEC master.dbo.xp_regread @rootkey='HKEY_LOCAL_MACHINE', 
      @key=@key, 
      @value_name='SQLDataRoot', 
      @value=@value OUTPUT, 
      @output = 'no_output' 
     
    SELECT @value as "Path a los datos"
    

    Suerte!


    Para el correcto funcionamiento y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido útil por favor Vótala.

    Gustavo A. Cantero
    Scientia® Soluciones Informáticas
    MCP - MCSD - MCTS - MCPD
    http://www.scientia.com.ar
    http://www.programandoamedianoche.com
    http://www.gustavo-cantero.com.ar
    http://twitter.com/ScientiaIT
    http://facebook.com/ScientiaIT
    • Marcado como respuesta acuariolo martes, 29 de junio de 2010 22:28
    lunes, 28 de junio de 2010 21:25
  • Hola.

    Eso es porque sigue estando en la ruta por defecto de instalación. Puedes grabar la clave y a partir de ese momento se leerá siempre del registro:

    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', REG_SZ, N'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA'
    Esta sería la ruta por defecto en una instancia de SQL Server 2008 R2, pero puedes mirarlo en las propiedades del servidor para saber qué tienes que poner en cada caso.


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    lunes, 28 de junio de 2010 21:33
    Moderador
  • Gustavo, funciono muchas gracias. Espéro funcione en difrentes maquinas.
    martes, 29 de junio de 2010 22:31
  • Gracias Alberto x ayudarme  a resolver esta cuestiion, siempre e tenido problemas con en manejo del reg tanto t-sql como en .net, x q no me devuelven el valor de las claves. Pero x esta vez con otra solucion he resuelto el problema.
    martes, 29 de junio de 2010 22:34