如何在SQL Server中获取*actual*default数据库位置?

har*_*rpo 1 scripting configuration sql-server-2005

在SQL Server Management Studio中,有一个选项可以为给定实例设置默认数据库路径:

替代文字

这有效.当我说

CREATE DATABASE test
Run Code Online (Sandbox Code Playgroud)

它是在我指定的路径中创建的E:\data.大.

但是如何在T-SQL中获取此路径(用于安装脚本)?

相反,以什么多页 ,没有注册表键(我的机器上)的DefaultDataDefaultLog.我在XP 64上运行SQL Server 2005 Express.

这个值必须存储在某个地方.哪里?

Mar*_*ith 6

您是否可以访问SQL事件探查器?

我没有安装SQL 2005 Express但是当我在运行Profiler的机器上查看该属性页面时,我可以看到SQL Server从我的SQL 2008实例上检索它的位置.

declare @SmoDefaultFile nvarchar(512)

exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', 
 N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', 
  @SmoDefaultFile OUTPUT

select ISNULL(@SmoDefaultFile,N'') AS [DefaultFile]
Run Code Online (Sandbox Code Playgroud)

编辑:上面也适用于SQL Server 2005 Developer Edition,但只有在我将默认路径更改为默认路径之外.