IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當前所在位置:首頁數(shù)據(jù)庫MSSQL → SQL Server通過代碼執(zhí)行代理任務(wù)

SQL Server通過代碼執(zhí)行代理任務(wù)

時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

今天被人問到,假如我們需要在代碼中執(zhí)行sql server 的代理任務(wù),那么有什么思路呢?

我馬上想到,一般會有兩種思路

1. 通過SMO(SQL Server Management Object Model)

2. 通過存儲過程

下面首先介紹的是通過SMO的手段

1. 首先要添加兩個程序集的引用

image

2. 然后編寫代碼

using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Smo.Agent;

 

///


/// 列出某個服務(wù)器上面所有的代理作業(yè)
/// 作者:陳希章
///
///
///
private void btList_Click(object sender, EventArgs e)
{
Server svr = new Server("Thinker");
foreach (Job item in svr.JobServer.Jobs)
{
lstJobs.Items.Add(item);
}
}
///
/// 雙擊運行某個作業(yè)
/// 作者:陳希章
///
///
///
private void lstJobs_MouseDoubleClick(object sender, MouseEventArgs e)
{
Job item = lstJobs.SelectedItem as Job;
item.Start();
}

image

 這是相當方便的。但有一個問題就是SMO這種操作必須在服務(wù)器由管理員身份執(zhí)行。

那么,有沒有辦法在T-SQL中通過存儲過程的方式調(diào)用呢?

1. 首先要知道的是,Job的信息是放在MSDB的,所以需要在MSDB里面想辦法。而且也應(yīng)該讓調(diào)用方具有MSDB的一些權(quán)限

image

2. 我們很快就定位到了這個存儲過程sp_start_job。下面是一個范例

USE msdb ;
GO

EXEC dbo.sp_start_job N'THINKER-demo-demo_products_merge-THINKER-1' ;
GO

相比較而言,用T-SQL的方式更加易于實現(xiàn)。

image

關(guān)鍵詞標簽:SQL Server,代理

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 SqlServer2005對現(xiàn)有數(shù)據(jù)進行分區(qū)具體步驟SqlServer2005對現(xiàn)有數(shù)據(jù)進行分區(qū)具體步驟sql server系統(tǒng)表損壞的解決方法sql server系統(tǒng)表損壞的解決方法MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫用戶MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫用戶Access、SQL Server、Oracle常見應(yīng)用的區(qū)別Access、SQL Server、Oracle常見應(yīng)用的區(qū)別

相關(guān)下載

人氣排行 如何遠程備份(還原)SQL2000數(shù)據(jù)庫SQL2000數(shù)據(jù)庫遠程導(dǎo)入(導(dǎo)出)數(shù)據(jù)配置和注冊O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程SQL2000和SQL2005數(shù)據(jù)庫服務(wù)端口查看或修改SQL Server 2005降級到2000的正確操作步驟修改Sql Server唯一約束教程淺談JSP JDBC來連接SQL Server 2005的方法SQL Server創(chuàng)建表語句介紹