SQL Server启动服务器时运行的存储过程

SQL Server启动时,我很想运行一个存储过程。有没有一种方法可以在每次SQL Server服务启动时都会自动执行这个存储过程呢?

 

SQL Server提供了系统存储过程sp_procoption,这个存储过程可以用于当SQL Server服务启动时指派一个或者多个存储过程自动执行。这是一个很不错的选择,它可以用于多种多样的用途。比如,你可能在你的数据库中有开销很大的查询,这个查询在首次执行时会花费一些时间。通过使用sp_procoption,你可以在服务器启动时运行这个查询以此来预先编译执行计划,由此,你的某个用户就不会成为第一个运行这个特殊查询的不幸的人。我曾经用这个功能建立了一个我自己写的概要分析器服务器端跟踪的自动执行功能,这个跟踪功能成为服务器启动时被设置成自动执行的存储过程的一部分。


  sp_procoption Parameters 
  
exec sp_procoption @ProcName = ['stored procedure name'], 
  
@OptionName = 'STARTUP', 
  @OptionValue = [on|off]


  以下是sp_procoption存储过程参数的解释:

1.       参数@ProcName的意思是明显的,它是被标记成自动执行的过程的名称。

2.       参数@OptionName是可选用项,唯一有效的选项是STARTUP

3.       参数@OptionValue切换自动执行的开与关。

  使用有特定限制的sp_procoption

l         你必须以系统管理员的身份登录服务器并使用sp_procoption

l         你只能指派标准存储过程、扩展存储过程或者CLR存储过程来启动。

l         存储过程必须在主从数据库上。

l         存储过程不能要求任何输入参数或者返回任何输出参数。

例如:

CREATE PROCEDURE dbo.chen

AS

       INSERT INTO pubs.dbo.jobs(job_desc,min_lvl,max_lvl) SELECT 'chenjianping',45,56

 

GO

 

EXEC sp_procoption 'chen','STARTUP','on'

GO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值