Saber por código el directorio por defecto de las BBDD

19/11/2007 - 16:07 por Paul | Informe spam
Hola,

Existe alguna forma con T-SQL de saber el directorio que tienen el
SqlServer 2005 para guardar las bases de datos.

Gracias
 

Leer las respuestas

#1 Eladio Rincón
20/11/2007 - 09:48 | Informe spam
hola,

esa información la puedes obtener del registro; aqui tienes la mayoría de
ellos:
http://technet.microsoft.com/en-us/...43547.aspx


el siguiente código lo puedes utilizar para leer directamente del registro
desde SQL Server:
http://www.sqldev.net/misc/SQLLocat...ctions.htm


declare @rc int,
@dir nvarchar(4000)

exec @rc = master.dbo.xp_instance_regread
N'HKEY_LOCAL_MACHINE',N'Software\Microsoft\MSSQLServer\MSSQLServer',N'DefaultData',
@dir output, 'no_output'

if (@dir is null)
begin
exec @rc = master.dbo.xp_instance_regread
N'HKEY_LOCAL_MACHINE',N'Software\Microsoft\MSSQLServer\Setup',N'SQLDataRoot',
@dir output, 'no_output'
select @dir = @dir + N'\Data'
end

select @dir


sin embargo, considera que el uso de la función xp_instance_regread no está
documentado, y es posible que en futuro lo quiten... por ejemplo, en el SP4
de SQL Server 2000 iban a quitar el soporte a dicho XP pero al final se
echaron atrás por toda la cantidad de gente que lo utilizaba :S

¿Qué solucion puedes adoptar? en lugar de usar la llamada al registro desde
TSQL con el XP, create un procedimiento almacenado con SQLCLR, y haz la
llamada desde .NET... entonces quedaría totalmente soportado :)


Saludos,

Eladio Rincón,
SQL Server MVP
http://blogs.solidq.com/es/elrincondeldba

"Paul" wrote in message
news:
Hola,

Existe alguna forma con T-SQL de saber el directorio que tienen el
SqlServer 2005 para guardar las bases de datos.

Gracias

Preguntas similares