论坛首页 综合技术论坛

使用SQL Server代理新建Job

浏览 2358 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-10-25   最后修改:2010-11-02
回顾一:曾经看过这样的一句话,一个人在做自己喜欢的事情之前,必须要做很多自己不喜欢的事情(大致是这样)。值得庆幸的是,.net的学习史不久!可能会用到的,ps一下。

功能:借助SQL Server代理新建Job,实现新闻日/周点击量的实时更新。对比计时器,还是觉得这个较为简单。

一、事先写好的存储过程

引用
create proc UpdateHits
as

declare @sql varchar(2000)
set @sql = ''

declare @weekday int
declare @wStr varchar(20)
set @wStr=''
--每天0:00执行,此时系统时间已是另外一天,所以-1
set @weekday = datepart(dw,getdate())-1
set @wStr = case @weekday
when 1 then 'sunday'
when 2 then 'monday'
when 3 then 'tuesday'
when 4 then 'wednesday'
when 5 then 'thursday'
when 6 then 'friday'
when 7 then 'saturday'
end

--创建周点击记录(插入日点击表有而周点击表中无的新闻ID,并将其它列置0)
insert into [soco_weekPonitNews](newsId) select distinct newsId from [soco_dayPointNews] where newsId not in (select distinct newsId from [soco_weekPonitNews])

--更新所有新闻周点击
set @sql = 'update [soco_weekPonitNews] set '
set @sql = @sql + @wStr  +' =  (select sum(point) from [soco_dayPointNews] where [soco_dayPointNews].newsId = w.newsId)  from [soco_weekPonitNews] w, [soco_dayPointNews] d where w.newsId = d.newsId '

exec sp_executesql @sql

--将日点击表数据移到点击历史记录表中
insert into soco_newsPointHistory (newsId,point,pDate) select newsId,point,pDate from [soco_dayPointNews]

--清空日点击表
delete from soco_dayPointNews;


二、使用SQL Server代理新建作业(以SQL Server2000为例)

1、企业管理器—>数据库服务器—>管理目录—>SQL SERVER代理—>新建—>作业



2、在弹出的“新建常规选项页”框中设置
   常规:作业的属性描述(名称、所有者必须)
   步骤:作业的核心,即sql语句或存储过程的调用(此处调用存储过程)
   调度:作业步骤的定时执行
   通知:及时对作业执行情况的反应



  • 大小: 18.5 KB
  • 大小: 22.9 KB
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics