A function to wrap Alex Aza's "find default paths" solution.
http://stackoverflow.com/a/12756990/377058
Uniquely fails back to [master] settings if defaults are not explicitly set.
Tested on SQL 2005.
A function to wrap Alex Aza's "find default paths" solution.
http://stackoverflow.com/a/12756990/377058
Uniquely fails back to [master] settings if defaults are not explicitly set.
Tested on SQL 2005.
/* Get the default data and log paths of this instance. If defaults are not explicitly defined, uses settings on [master]. Original source: Alex Aza, http://stackoverflow.com/questions/1883071/how-do-i-find-the-data-directory-for-a-sql-server-instance Example: select * from dbo.fn_DefaultDBFilePaths() created 20130701 by wills */create function dbo.fn_DefaultDBFilePaths ( ) returns @DefaultPaths table ( DefaultData varchar(200) , DefaultLog varchar(200) ) as begin declare @DefaultData nvarchar(512) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE' , N'Software\Microsoft\MSSQLServer\MSSQLServer' , N'DefaultData' , @DefaultData output declare @DefaultLog nvarchar(512) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE' , N'Software\Microsoft\MSSQLServer\MSSQLServer' , N'DefaultLog' , @DefaultLog output declare @MasterData nvarchar(512) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE' , N'Software\Microsoft\MSSQLServer\MSSQLServer\Parameters' , N'SqlArg0' , @MasterData output select @MasterData = substring(@MasterData, 3, 255) select @MasterData = substring(@MasterData, 1, len(@MasterData) - charindex('\', reverse(@MasterData))) declare @MasterLog nvarchar(512) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE' , N'Software\Microsoft\MSSQLServer\MSSQLServer\Parameters' , N'SqlArg2' , @MasterLog output select @MasterLog = substring(@MasterLog, 3, 255) select @MasterLog = substring(@MasterLog, 1, len(@MasterLog) - charindex('\', reverse(@MasterLog))) insert into @DefaultPaths select isnull(@DefaultData, @MasterData) DefaultData , isnull(@DefaultLog, @MasterLog) DefaultLog return end GO