创建自动执行存储过程

GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
https://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=1875

 

每次 SQL Server 启动时,将执行标记为要自动执行的存储过程。如果有需要定期执行的操作,或者有作为后台进程运行的存储过程,并希望该存储过程在所有时间都处于运行状态,此种方法非常有用。自动执行存储过程的另一个用途是使该存储过程完成 tempdb 中的系统或维护任务,如创建一个全局临时表。这将确保在 SQL Server 启动并重新创建 tempdb 时,始终存在这样一个临时表。

自动执行的存储过程使用与固定服务器角色 sysadmin 成员相同的权限进行操作。该存储过程生成的所有错误消息都将写入 SQL Server 错误日志。请勿从自动执行的存储过程中返回任何结果集。因为该存储过程是由 SQL Server 而不是某位用户执行,所以结果集将无处可去。

启动时恢复了 master 数据库后,即开始执行存储过程。

设置、清除和控制自动执行

只有系统管理员 (sa) 可以将存储过程标记为自动执行。另外,该存储过程必须在 master 数据库中并由 sa 所有,而且不能有输入或输出参数。

使用 sp_procoption 可以:

  • 将现有存储过程指定为启动过程。
  • 阻止过程在 SQL Server 启动时执行。

虽然将存储过程设置为分别自动执行,但可以使用 sp_configure 设置 SQL Server scan for startup procs 配置选项以防止在 SQL Server 启动时自动执行所有存储过程。若要跳过这些存储过程的执行,请将启动参数指定为跟踪标记 4022。如果以最低配置(使用 -f 标志)启动 SQL Server,则将不执行启动存储过程。有关更多信息,请参见跟踪标记。

最佳方法

虽然对启动过程的数目没有限制,但是请注意,在执行时每个启动过程将占用一个工作线程。如果必须在启动时执行多个过程,但不需要并行执行,则可以指定一个过程作为启动过程,让该过程调用其他过程。这样就只占用一个工作线程。

设置或清除自动执行的存储过程

  • sp_procoption (Transact-SQL)

设置或清除 scan for startup procs 配置选项

  • sp_configure (Transact-SQL)
    • 设置自动执行的存储过程。设置为自动执行的存储过程在每次启动 SQL Server 实例时运行。
    • Transact-SQL 语法约定

·         语法

 

sp_procoption [ @ProcName = ] 'procedure'

        , [ @OptionName = ] 'option'

        , [ @OptionValue = ] 'value'

·         参数

  • [ @ProcName = ] 'procedure'
  • 为其设置选项的过程的名称。 procedure 的数据类型为 nvarchar(776),无默认值。
  • [ @OptionName = ] 'option'
  • 要设置的选项的名称。option 的唯一值为 startup
  • [ @OptionValue = ] 'value'
  • 指示是将选项设置为开启(trueon)还是关闭(falseoff)。value 的数据类型为 varchar(12),无默认值。
  • 0(成功)或错误号(失败)
  • 启动过程必须位于 master 数据库中,并且不能包含 INPUT 或 OUTPUT 参数。启动时恢复了 master 数据库后,即开始执行存储过程。
  • 要求具有 sysadmin 固定服务器角色的成员身份。

·         返回代码值

·         备注

·         权限

 

 

GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
https://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=1875

posted on   森大科技  阅读(209)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示