董晓涛(David Dong)

博客园 首页 新随笔 联系 订阅 管理

How to configure a store proc automatically exec when SQL Server Services start

 

通过这个例子,我们将大致了解如何使用Raiserror抛出错误信息以及让SQLServer启动时自动运行存储过程.

 

1.先为我们的SQLServer增加一个错误号为50008message,然后我们就可以使用这个信息,在本例子中我们将会看到这个信息会被应用程序日志中:

SP_ADDMESSAGE 50008, 16,

    'The current database ID is:%d, the current date is: %s.'

GO

2.创建一个存储过程,此存储过程实现模拟一个错误处理过程,抛出错误号为50008的错误.

CREATE PROC UP_SETUPPROC

AS

   BEGIN

   DECLARE @DBID INT

   SET @DBID = DB_ID()

 

   DECLARE @TIME varchar(100)

   SET @TIME = convert(varchar,getdate(),110)

 

   RAISERROR (50008, 16, 1, @DBID, @TIME)

   WITH log

END

 

 

3.打开高级配置选项:如果不打开此选项,我们看不到很多高级的数据库配置选项.

EXEC SP_CONFIGURE 'SHOW ADVANCED OPTION',1

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Configuration option 'show advanced options' changed from 0 to 1. Run the RECONFIGURE statement to install.

THEN EXECUTE THE FOLLOW COMMAND:

RECONFIGURE

 

4.现在看一下当前的可以被配置的选项.

EXEC SP_CONFIGURE

 

可以看到与启动自动运行一个程序相关的选项是:

NAME                       MINIMUM     MAXINUM CONFIG_VALUE RUN_VALUE

scan for startup procs    0             1                 0                      0   

 

第一列是个选项的名字,下面的两个是这个选项的最小值和最大值,CONFIG_VALUE是当前的的配置值,RUN_VALUE是当前SQL Server

使用的值.

 

 

5.打开这个'scan for startup procs’选项,以使我们的SQLServer能够在启动时自动执行我们指定的存储过程:

          EXEC SP_CONFIGURE 'scan for startup procs',1

          RECONFIGURE

 

6:配置需要自动随SQLSERVER启动的存储过程,我们使用系统存储过程sp_procoption来进行设置,如下:

 

    sp_procoption @ProcName = 'UP_SETUPPROC', @OptionName = 'startup',

@OptionValue = 'true'

 

 

7:重启SQLServer Services:

                   START->RUN->CMD->NET STOP MSSQLSERVER

START->RUN->CMD->NET START MSSQLSERVER

 

9:查看应用程序日志:现在我们看一下我们的应用程序日志,就会发现我有一个Error number50008的的错误信息出现.

 

 

通过这个例子希望我们能够大致了解到RaiseError和怎么设置让一个存储过程随SQLServer 的启动而自动运行.

 

---Writen by 董晓涛

posted on 2005-03-23 18:41  董晓涛  阅读(1319)  评论(0编辑  收藏  举报