SQL Server 2005 ve üzeri'da, SQL Server Agent İşleri hakkında durum bilgisi de dahil olmak üzere sistem saklı yordamını msdb.dbo.sp_help_job kullanabilirsiniz. Sp_help_job hakkında daha fazla bilgiyi http://msdn.microsoft.com/en-us/library/ms186722(v=SQL.90).aspx numaralı telefondan okuyabilirsiniz.
Bunu C# ile yapmak için örnek kod. Eğer 2008. Bu nedenle sözü edilen yöntemler normalde uygulamalar nereye için çalışmaz, SQL Server kira, msdb sistem veritabanı db_owner haklara sahip olmadıkları sürece size herhangi bir sistem verilerini vermeyin sorguları
private Dictionary<int, string> ExecutionStatusDictionary = new Dictionary<int, string>()
{
{0, "Not idle or suspended"},
{1, "Executing"},
{2, "Waiting for thread"},
{3, "Between retries"},
{4, "Idle"},
{5, "Suspended"},
{7, "Performing completion actions"}
};
public string GetStatus()
{
SqlConnection msdbConnection = new SqlConnection("Data Source=GACDTL01CR585M;Initial Catalog=msdb;Integrated Security=SSPI");
System.Text.StringBuilder resultBuilder = new System.Text.StringBuilder();
try
{
msdbConnection.Open();
SqlCommand jobStatusCommand = msdbConnection.CreateCommand();
jobStatusCommand.CommandType = CommandType.StoredProcedure;
jobStatusCommand.CommandText = "sp_help_job";
SqlParameter jobName = jobStatusCommand.Parameters.Add("@job_name", SqlDbType.VarChar);
jobName.Direction = ParameterDirection.Input;
jobName.Value = "LoadRegions";
SqlParameter jobAspect = jobStatusCommand.Parameters.Add("@job_aspect", SqlDbType.VarChar);
jobAspect.Direction = ParameterDirection.Input;
jobAspect.Value = "JOB";
SqlDataReader jobStatusReader = jobStatusCommand.ExecuteReader();
while (jobStatusReader.Read())
{
resultBuilder.Append(string.Format("{0} {1}",
jobStatusReader["name"].ToString(),
ExecutionStatusDictionary[(int)jobStatusReader["current_execution_status"]]
));
}
jobStatusReader.Close();
}
finally
{
msdbConnection.Close();
}
return resultBuilder.ToString();
}
insanların zaman israf değiliz - Stackoverflow burada özellikle topluluktan yardım istemeye muktedir! –
tamam teşekkürler, Stackoverflow çok iyi Bilgi ve birçok insana yardım^_^ – Fernatit
Doğru cevap seçilebilir mi lütfen? SQL kullanarak doğrudan çalıştırabilir veya SQLServer SMO C# kitaplığı da çalışır. Bunlardan birkaçı cevap olarak kabul edilebilir. – DtechNet