2010-08-10 60 views
1

如果我在Ado.Net中连接的Sql Server在本地机器上而不是在远程机器上,是否有任何方法可以告诉我,使用C#?如何检查连接的SQL Server是否在本地计算机上?

我想知道我是否有权访问SQL Server存储的文件系统,例如它是备份文件。如果我让SQL Server创建一个备份文件,那我可以确定是否能够以编程方式删除备份文件。我已经阅读了关于xp_cmdshell等等,但我相信最好避免它们。

+0

物理机或虚拟机? 检查将在SQL服务器上执行还是从C#代码执行? – 2010-08-10 11:50:28

+0

似乎想要做一件奇怪的事情,我真的不明白你为什么会在意。你能解释一下你试图达到的目标吗,也许他们是一个更好的方法。 – 2010-08-10 11:52:30

回答

2

使用SERVERPROPERTY('MachineName'):在其上 服务器实例运行

Windows计算机名。

对于群集实例,在Microsoft群集服务, 返回虚拟 服务器的名称的虚拟服务器 上运行的SQL Server实例 。

你不应该使用HOST_NAME()因为返回工作站的名字,换​​句话说,客户端的名称,并且是总是会出现,你本地连接。

+0

我删除了我的答案,因为它是错误的,我不希望其他开发人员来这里并错误地选择不正确的东西。我之前测试过的时候,我看起来不够坚硬。 Remus的答案是正确的。如果可能的话,塞缪尔,你应该把这个标记为官方的答案。 – 2010-08-10 16:00:29

0

只要检查System.IO.File.Exists是否为True。即使文件在网络上,用户也可能有权限(或被授予权限)。

相关问题