用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > sqlserver教程

SQL Server通过代码执行代理任务

时间:2014-11-30  来源:互联网  作者:佚名

今天被人问到,假如我们需要在代码中执行SQL(SQL Server培训 mySQL培训 ) Server 的代理任务,那么有什么思路呢?

我马上想到,一般会有两种思路

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

2. 通过存储过程

下面首先介绍的是通过SMO的手段

1. 首先要添加两个程序集的引用

2. 然后编写代码

using Microsoft.SqlServer.Management.Smo;

using Microsoft.SqlServer.Management.Smo.Agent;

///

/// 列出某个服务器上面所有的代理作业

/// 作者:陈希章

///

///

///

private void btList_Click(object sender, EventArgs e)

{

Server svr = new Server("Thinker");

foreach (Job item in svr.JobServer.Jobs)

{

lstJobs.Items.Add(item);

}

}

///

/// 双击运行某个作业

/// 作者:陈希章

///

///

///

private void lstJobs_MouseDoubleClick(object sender, MouseEventArgs e)

{

Job item = lstJobs.SelectedItem as Job;

item.Start();

}

这是相当方便的。但有一个问题就是SMO这种操作必须在服务器由管理员身份执行。

那么,有没有办法在T-SQL中通过存储过程的方式调用呢?

1. 首先要知道的是,Job的信息是放在MSDB的,所以需要在MSDB里面想办法。而且也应该让调用方具有MSDB的一些权限

2. 我们很快就定位到了这个存储过程sp_start_job。下面是一个范例

USE msdb ;

GO

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

GO

相比较而言,用T-SQL的方式更加易于实现。

Oracle与SQL Server之间的数据迁移

SQL Server置疑数据库解决方法

SQL Server群集的几个关键技巧

来顶一下
返回首页
返回首页
推荐资讯
从零开始学ASP.NET-基础篇第1/7页 从零开始学ASP.NET-基础篇第1/7页第一天 学习目的: 掌握最基本的Label、TextBox、Button控件
ASP.NET入门数据篇 ASP.NET入门数据篇对于网站编程的初学者来说,总是会上网找些源码来看,但久而
相关文章
栏目更新
栏目热门