sql 根据文件名称查找文件在电脑中的路径

sql 根据文件名称查找文件在电脑中的路径,第1张

以下SQL语句代码可用来检查文件夹或文件是否存在

declare @foldername nvarchar(255)

declare @r int

declare @s nvarchar(255)

set @s = 'dir ' + @foldername

exec @r=xp_cmdshell @s,no_output

if @r = 0

print @foldername+ '存在'

else

print @foldername+ '不存在'

再把上述代码修改一下,即可实现你的要求。

问题:用sql语句获取mdf默认存放路径

这个路径没有放在sql server里面,而是在注册表里,路径是:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQLServer,其中MSSQL10_50.MSSQLSERVER是sql server 2008的默认instance name,参考http://msdn.microsoft.com/en-us/library/ms143547.aspx。

sql server里面可以用xp_instance_regread读取注册表内容,问题就出在这个上面了,直接看解法,

?

1

2

3

4

5

6

declare @SmoDefaultFile nvarchar(1000)

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

select @SmoDefaultFile

set @SmoDefaultFile=null

exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQLServer', N'DefaultData', @SmoDefaultFile OUTPUT

select @SmoDefaultFile

两种方案的答案是相同的(第二种可能在不同的配置下会有问题)。

弄巧成拙,把第二个用法的参数用到了第一个上,搞好就才弄明白怎么回事。最后还是伟大的stack overlfow告诉我,xp_instance_regread会自动把路径转换成当成使用的instance对应的路径,而xp_regread就是个呆瓜,实打实的货。

最简单的方法是打开SQL管理器,到属性里可以看到路径

1、首先电脑打开SQL客户端,找到实例,右键实例出现菜单栏,点击属性进入即可。

2、然后进入属性的界面,可以看到有很多设置的选项,找到数据库设置,点击一下进入。

3、点击数据库设置之后,进入该界面,可以看到数据库默认位置的选项,即可看到sql数据库的路径。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10035733.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存