默认数据和使用TSQL的远程服务器的日志目录

我如何知道与实例名称,群集名称或默认实例无关的目录?

**更新:**非常重要的是你不能用一个nvarchar(MAX)来读取registry数据,只能使用像nvarchar(4000)这样的有价值的nvarchar。 我不知道,所以我的阅读总是失败

** UPDATE2:**在群集上,默认数据目录位于

软件\微软\的MSSQLServer \ SETUP

SQLDataRoot键上的registry。

** UPDATE3:**对于远程服务器使用链接服务器!

这是最后的脚本:

declare @datadir nvarchar(4000) ,@logdir nvarchar(4000); EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE' , N'Software\Microsoft\MSSQLServer\MSSQLServer' , N'DefaultData' , @datadir output; IF @datadir IS NULL BEGIN EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE' , N'Software\Microsoft\MSSQLServer\Setup' , N'SQLDataRoot' , @datadir output; END EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE' , N'Software\Microsoft\MSSQLServer\MSSQLServer' , N'DefaultLog' , @logdir output; SELECT @datadir as Data, ISNULL(@logdir,@datadir) as Log; 

您将在registry中find默认的数据和日志目录,可以从TSQL xp_instance_regread存储过程中读取这些目录。 请看这个post的全部细节。

http://tenbulls.co.uk/2010/07/08/how-to-set-and-manage-your-sql-server-default-paths/