首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

删除本数据库所有作业(jobs)的T-SQL语句(求更好的办法)解决方案

2012-02-05 
删除本数据库所有作业(jobs)的T-SQL语句(求更好的办法)删除本数据库所有作业(jobs)的T-SQL语句.我的做法--

删除本数据库所有作业(jobs)的T-SQL语句(求更好的办法)
删除本数据库所有作业(jobs)的T-SQL语句.

我的做法
--Delect   all   jobs   in   this   server!--
use   msdb
declare   jobs_cursor   cursor  
  for  
          select   job_id   from   msdb.dbo.sysjobservers
open   jobs_cursor
declare   @t_job_id   uniqueidentifier
fetch   next   from   jobs_cursor   into   @t_job_id
WHILE   (@@fetch_status <> -1)
BEGIN
EXEC   sp_delete_job   @job_id=@t_job_id
fetch   next   from   jobs_cursor   into   @t_job_id
END
deallocate   jobs_cursor



[解决办法]
好像只能向lz这样做
[解决办法]
--或者

declare @sql varchar(8000)
Select @sql=isnull(@sql, ' ')+ 'EXEC msdb.dbo.sp_delete_job ' ' '+rtrim(job_id)
+ ' ' ' '+Char(13)from msdb.dbo.sysjobservers
exec(@sql)
[解决办法]
sp_delete_job 是这样删除的。


-------
...
INSERT INTO #temp_jobs_to_delete
SELECT job_id, (SELECT COUNT(*)
FROM msdb.dbo.sysjobservers
WHERE (job_id = @job_id)
AND (server_id = 0))
FROM msdb.dbo.sysjobs_view
WHERE (job_id = @job_id)
.....
-- Delete all traces of the job
BEGIN TRANSACTION

DELETE FROM msdb.dbo.sysjobs
WHERE job_id IN (SELECT job_id FROM #temp_jobs_to_delete)

DELETE FROM msdb.dbo.sysjobservers
WHERE job_id IN (SELECT job_id FROM #temp_jobs_to_delete)

DELETE FROM msdb.dbo.sysjobsteps
WHERE job_id IN (SELECT job_id FROM #temp_jobs_to_delete)

DELETE FROM msdb.dbo.sysjobschedules
WHERE job_id IN (SELECT job_id FROM #temp_jobs_to_delete)

IF (@delete_history = 1)
DELETE FROM msdb.dbo.sysjobhistory
WHERE job_id IN (SELECT job_id FROM #temp_jobs_to_delete)

COMMIT TRANSACTION
[解决办法]
学习 接分
[解决办法]
不懂 友情UP

热点排行