不知道这个对不对如何在客户端获得维护计划日志  
如何判断维护计划的状态,是否已停止  
如何在客户端启动SQLServer代理  
---------------------------------------------------------------  
 
--如何在客户端启动SQLServer代理  
exec  master..xp_cmdshell  'net  start  SQLSERVERAGENT'  
---------------------------------------------------------------  
 
查询系统表,可以得到维护计划的状态:  
select  *  from  msdb..sysdbmaintplan_history  
 
 
关于此系统表返回信息的说明:  
sysdbmaintplan_history  
执行的每个维护计划操作在表中占一行。该表存储在  msdb  数据库中。  
 
列名  数据类型  描述    
sequence_id  int  维护计划执行的历史记录序列。    
plan_id  uniqueidentifier  维护计划  ID。    
plan_name  sysname  维护计划名称。    
database_name  sysname  与维护计划相关联的数据库名称。    
server_name  sysname  系统名称。    
activity  nvarchar(128)  维护计划执行的活动(例如备份事务日志等)。    
succeeded  bit  0  =  成功  
1  =  失败    
end_time  datetime  完成操作的时间。    
duration  int  完成维护计划操作所需的时间。    
start_time  datetime  操作开始的时间。    
error_number  int  失败时报告的错误号。    
message  nvarchar(512)  sqlmaint  生成的消息。    

解决方案 »

  1.   

    真是太谢谢楼上了,我还有一个问题,就是生成一个sql语句的维护计划的命令是什么啊
      

  2.   

    能否举个例子阿exec  master..xp_cmdshell  'net  start  SQLSERVERAGENT'  不能执行阿,我有点不太明白
      

  3.   

    看看这个:)
    http://community.csdn.net/Expert/topic/4712/4712279.xml?temp=.7417261
      

  4.   

    Oracle10g之前要求用户自己建立plan_table,才能使用set autotrace on等查看执行计划的功能。然后执行计划缓存通过plan_table再展示给用户。可以说Oracle10g之前的要求用户建立plan_table的方式是比较麻烦的。plan_table只是起到缓存的作用,每次查看新的SQL语句都会被刷新,对其查询有意义吗?!SQL Server和Oracle的思路是不同的。由于SQL Server的UI做的好,一般都是使用图形方式展现执行计划。如果SQL比较复杂,一般使用:
    set showplan_all {on | off} set showplan_text { on | off } 来查看文本执行计划(最类似Oracle,这和Oracle的set autotrace on是基本相同的)。如果需要保存执行计划,需要手工操作。如果想自动实现这一过程,可以考虑使用SQL Server Profiler(SQL Server的跟踪功能)来自动记录执行计划事件。
    rookie_one(流氓会武术,谁都挡不住)说的是数据库的维护计划。用作业(job)自动执行的一些数据库维护功能。和你的问题不是一个概念。