How to configure a store proc automatically exec when SQL Server Services start
通过这个例子,我们将大致了解如何使用Raiserror抛出错误信息以及让SQLServer启动时自动运行存储过程.
1.先为我们的SQLServer增加一个错误号为50008的message,然后我们就可以使用这个信息,在本例子中我们将会看到这个信息会被应用程序日志中:
SP_ADDMESSAGE 50008, 16,
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
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Configuration option
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.打开这个
EXEC SP_CONFIGURE
RECONFIGURE
6:配置需要自动随SQLSERVER启动的存储过程,我们使用系统存储过程sp_procoption来进行设置,如下:
sp_procoption @ProcName =
@OptionValue =
7:重启SQLServer Services:
START->RUN->CMD->NET STOP MSSQLSERVER
START->RUN->CMD->NET START MSSQLSERVER
9:查看应用程序日志:现在我们看一下我们的应用程序日志,就会发现我有一个Error number为50008的的错误信息出现.
通过这个例子希望我们能够大致了解到RaiseError和怎么设置让一个存储过程随SQLServer 的启动而自动运行.
---Writen by 董晓涛