HI 作为日常检查,我必须检查与所有服务器的SQL连接。目前,这是通过SQL server Managment studio手动登录完成的。我只是想知道这是否可以在C#中编码,以便我可以在早上第一件事情运行它并检查每个服务器和实例是否有效的SQL连接并报告回来说明连接是否有效。
谢谢安迪
答案 0 :(得分:3)
这是一个小的控制台应用程序示例,它将遍历连接列表并尝试连接到每个连接,报告成功或失败。理想情况下,您可能希望将其扩展为从文件中读取connection strings列表,但这应该可以帮助您入门。
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Text;
namespace SQLServerChecker
{
class Program
{
static void Main(string[] args)
{
// Use a dictionary to associate a friendly name with each connection string.
IDictionary<string, string> connectionStrings = new Dictionary<string, string>();
connectionStrings.Add("Sales Database", "< connection string >");
connectionStrings.Add("QA Database", "< connection string >");
foreach (string databaseName in connectionStrings.Keys)
{
try
{
string connectionString = connectionStrings[databaseName];
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("Connected to {0}", databaseName);
}
}
catch (Exception ex)
{
// Handle the connection failure.
Console.WriteLine("FAILED to connect to {0} - {1}", databaseName, ex.Message);
}
}
// Wait for a keypress to stop the console closing.
Console.WriteLine("Press any key to finish.");
Console.ReadKey();
}
}
}
答案 1 :(得分:2)
查看SqlConnection班级。它包括一个基本样本。只需在该示例周围放置一个循环以连接到每个服务器,如果任何服务器连接失败,则抛出异常。
然后将其设置为Windows中的计划任务。
报告状态的好方法可能是使用电子邮件,可以使用SmtpClient.Send轻松发送(该链接有一个很好的简单示例。
答案 2 :(得分:2)
为什么选择c#?您可以使用osql命令创建一个简单的批处理文件。
osql -S servername\dbname -E -Q "select 'itworks'"
答案 3 :(得分:0)
您还可以查看此方法:
SqlDataSourceEnumerator.Instance.GetDataSources()
它为您提供了网络上可用的SQL服务器列表。
答案 4 :(得分:-1)
你知道,他们制作的监控工具可以让你知道你的sql server是否出现故障。 。 。