Sql server 2005 作业 


使用JOB  
--
企业管理器  
--
管理  
--
SQL Server代理  
--
右键作业  
--
新建作业  
--
"常规"项中输入作业名称  
--
"步骤"项  
--
新建  
--
"步骤名"中输入步骤名  
--
"类型"中选择"Transact-SQL 脚本(TSQL)"   
--
"数据库"选择执行命令的数据库  
--
"命令"中输入要执行的语句:   
                      insert into 周历史表 select weekap fromwhere DATEPART(week ,getdate())!=DATEPART(week, getdate()-1)
                      
insert into 月历史表 select weekap fromwhere DATEPART(month,getdate())!=DATEPART(month,getdate()-1)

--确定  
--
"调度"项  
--
新建调度  
--
"名称"中输入调度名称  
--
"调度类型"中选择你的作业执行安排  
--
如果选择"反复出现"   
--
点"更改"来设置你的时间安排 --该处设置为每月日的凌晨:00:00  

--然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行 

--设置方法:   
--
我的电脑--控制面板--管理工具--服务--右键SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.

 

 
  
  1. 如: 
  2. USE [msdb] 
  3. GO 
  4. /****** 对象:  Job [testadm]    脚本日期: 09/23/2011 12:05:30 ******/ 
  5. BEGIN TRANSACTION 
  6. DECLARE @ReturnCode INT 
  7. SELECT @ReturnCode = 0 
  8. /****** 对象:  JobCategory [[Uncategorized (Local)]]]    脚本日期: 09/23/2011 12:05:30 ******/ 
  9. IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1) 
  10. BEGIN 
  11. EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]' 
  12. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback 
  13.  
  14. END 
  15.  
  16. DECLARE @jobId BINARY(16) 
  17. EXEC @ReturnCode =  msdb.dbo.sp_add_job @job_name=N'testadm'
  18.         @enabled=1, 
  19.         @notify_level_eventlog=0, 
  20.         @notify_level_email=0, 
  21.         @notify_level_netsend=0, 
  22.         @notify_level_page=0, 
  23.         @delete_level=0, 
  24.         @description=N'无描述。'
  25.         @category_name=N'[Uncategorized (Local)]'
  26.         @owner_login_name=N'sa', @job_id = @jobId OUTPUT 
  27. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback 
  28. /****** 对象:  Step [test_adm]    脚本日期: 09/23/2011 12:05:31 ******/ 
  29. EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'test_adm'
  30.         @step_id=1, 
  31.         @cmdexec_success_code=0, 
  32.         @on_success_action=1, 
  33.         @on_success_step_id=0, 
  34.         @on_fail_action=2, 
  35.         @on_fail_step_id=0, 
  36.         @retry_attempts=0, 
  37.         @retry_interval=0, 
  38.         @os_run_priority=0, @subsystem=N'TSQL'
  39.         @command=N'update t_b_account set accountNumber=accountNumber+(select eatMoney+bedCharge+serviceCharge+manageCharge+electricityCharge+heatCharge+otherCharge  from t_b_curMoneyStandard cur where cur.fk_olderInfoID=t_b_account.fk_olderInfoID) 
  40. ', 
  41.         @database_name=N'RESTHOME'
  42.         @flags=0 
  43. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback 
  44. EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1 
  45. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback 
  46. EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'exe_test_adm'
  47.         @enabled=1, 
  48.         @freq_type=4, 
  49.         @freq_interval=1, 
  50.         @freq_subday_type=1, 
  51.         @freq_subday_interval=0, 
  52.         @freq_relative_interval=0, 
  53.         @freq_recurrence_factor=0, 
  54.         @active_start_date=20110921, 
  55.         @active_end_date=99991231, 
  56.         @active_start_time=120500, 
  57.         @active_end_time=235959 
  58. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback 
  59. EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)' 
  60. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback 
  61. COMMIT TRANSACTION 
  62. GOTO EndSave 
  63. QuitWithRollback: 
  64.     IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION 
  65. EndSave: