用sql语句获取mdf默认存放路径
这个路径没有放在sql server里面,而是在注册表里,路径是:HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLServer,其中MSSQL10_50.MSSQLSERVER是sql server 2008的默认instance name,参考http://msdn.microsoft.com/en-us/library/ms143547.aspx。
sql server里面可以用xp_instance_regread读取注册表内容,问题就出在这个上面了,直接看解法,
declare @SmoDefaultFile nvarchar(1000)exec master.dbo.xp_instance_regread N\'HKEY_LOCAL_MACHINE\', N\'SoftwareMicrosoftMicrosoft SQL ServerMSSQLServer\', N\'DefaultData\', @SmoDefaultFile OUTPUTselect @SmoDefaultFileset @SmoDefaultFile=nullexec master.dbo.xp_regread N\'HKEY_LOCAL_MACHINE\', N\'SOFTWAREMicrosoftMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLServer\', N\'DefaultData\', @SmoDefaultFile OUTPUTselect @SmoDefaultFile
两种方案的答案是相同的(第二种可能在不同的配置下会有问题)。