2012-03-05 19 views

Trả lời

18

Gọi điện đến sp_start_job.

exec msdb.dbo.sp_start_job @job_name = 'YourJobName' 

MSDN Reference on sp_start_job

SqlConnection DbConn = new SqlConnection(YourConnectionString); 
SqlCommand ExecJob = new SqlCommand(); 
ExecJob.CommandType = CommandType.StoredProcedure; 
ExecJob.CommandText = "msdb.dbo.sp_start_job"; 
ExecJob.Parameters.AddWithValue("@job_name", "YourJobName") 
ExecJob.Connection = DbConn; //assign the connection to the command. 

using (DbConn) 
{ 
    DbConn.Open(); 
    using (ExecJob) 
    { 
     ExecJob.ExecuteNonQuery(); 
    } 
} 
0

Tác vụ đại lý thường chỉ là các tập lệnh chạy truy vấn. Có lý do gì khiến bạn không thể chạy truy vấn mà tác vụ đại lý đang chạy không?

Đại lý chỉ xử lý các thông báo lập lịch và thông báo lỗi ... Đây là một chút đơn giản hơn, nhưng Đại lý chủ yếu là một người lập lịch với các cảnh báo chạy truy vấn. Hãy thử tạo kịch bản cho công việc đại lý của bạn và xem đó có phải là thứ bạn có thể chuyển sang một thủ tục được lưu trữ do cả tác nhân và ứng dụng của bạn điều hành.

+0

Trong trường hợp của tôi tôi biết id công việc .. tôi muốn công việc đó được lên lịch để thay đổi với sự trợ giúp của ứng dụng windows .. – user824910

+0

MSDB có hầu hết việc sử dụng tác nhân dữ liệu. Hãy nhìn quanh đó và, trong khi tôi đã không tự mình làm, tôi chắc chắn bạn có thể thay đổi nó bằng cách cập nhật nó trực tiếp. Điều này có thể là một chút nguy hiểm tuy nhiên, và có vẻ như với tôi rằng một dịch vụ cửa sổ sẽ là một giải pháp tốt hơn cho những gì bạn đang cố gắng để làm. OP của bạn nói rằng bạn muốn invokve nó, nhưng bây giờ bạn đang nói rằng bạn muốn thay đổi nó .. đó là chính xác? – Gats

1

Các documentation mô tả tất cả các tùy chọn. Bạn có thể sử dụng SMO Job class từ ngôn ngữ C# hoặc ngôn ngữ .NET khác nếu bạn không muốn sử dụng TSQL.

+0

Cảm ơn. Bạn có biết nếu điều này sử dụng WMI trong nền? –

+0

@TomRedfern SMO thực hiện [wrap WMI] (http://msdn.microsoft.com/en-us/library/ms162557.aspx) đối với một số hoạt động (như làm việc với các dịch vụ SQL Server), nhưng đối với nhiều hoạt động, nó chỉ tạo TSQL và gửi nó đến máy chủ. – Pondlife

Các vấn đề liên quan