你真的对所有SQL Server实例(S)登录权限?如果是这样,您可以执行 sp_helpserver或 @@ servername并比较返回的名称与 Environment.MachineName。
如果您还没有登录访问,你可以写一个小C#控制台程序返回本地网络上的每一个SQL Server实例的服务器名称:
using System;
using System.Data.Sql;
class Program
{
static void Main()
{
// Retrieve the enumerator instance and then the data.
SqlDataSourceEnumerator instance =
SqlDataSourceEnumerator.Instance;
System.Data.DataTable table = instance.GetDataSources();
// Display the contents of the table.
// The first column is the server name.
DisplayData(table);
Console.WriteLine("Press any key to continue.");
Console.ReadKey();
}
private static void DisplayData(System.Data.DataTable table)
{
foreach (System.Data.DataRow row in table.Rows)
{
foreach (System.Data.DataColumn col in table.Columns)
{
Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
}
Console.WriteLine("============================");
}
}
}
所以@@服务器名是.. 。谢谢 – sebagomez 2010-10-13 15:34:57
我无法理解 - 你如何从返回的名字中找出它是本地的还是远程的? – 2010-10-14 13:24:13
@ vgv8 - 您将它与本地机器的名称进行比较。 – JohnFx 2010-10-14 13:39:29