sql server:如何设置自动执行的存储过程?

2024-11-01 19:12:40
推荐回答(2个)
回答1:

--方法1:作业里定时执行存储过程定时作业的制定 企业管理器 --管理 --SQL Server代理 --右键作业 --新建作业 --"常规"项中输入作业名称 --"步骤"项 --新建 --"步骤名"中输入步骤名 --"类型"中选择"Transact-SQL 脚本(TSQL)" --"数据库"选择执行命令的数据库 --"命令"中输入要执行的语句: EXEC 存储过程名 ... --该存储过程用于创建表 --确定 --"调度"项 --新建调度 --"名称"中输入调度名称 --"调度类型"中选择你的作业执行安排 --如果选择"反复出现" --点"更改"来设置你的时间安排 然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行 设置方法: 我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定. --方法2:将存储过程创建在master数据库中,然后企业管理器中找到这个存储过程--右键--属性--勾选"每当sql server启动时执行"。 或在master中创建存储过程后,执行语句配置为自动启动 use master exec sp_procoption '存储过程名','startup','on' 自动执行存储过程 SQL Server 启动时能够自动执行一个或多个存储过程。这些存储过程必须由系统管理员创建,并在 sysadmin 固定服务器角色下作为后台过程执行。这些过程不能有任何输入参数。 对启动过程的数目没有限制,但是要注意,每个启动过程在执行时都会占用一个连接。假如必须在启动时执行多个过程,但无需并行执行,则能够指定一个过程作为启动过程,让该过程调用其他过程。这样就只占用一个连接。 在启动时恢复了最后一个数据库后,即开始执行存储过程。若要跳过这些存储过程的执行,请将启动参数指定为跟踪标记 4022。假如以最低配置启动 SQL Server(使用 -f 标记),则启动存储过程也不会执行。有关更多信息,请参见跟踪标记。 若要创建启动存储过程,必须作为 sysadmin 固定服务器角色的成员登录,并在 master 数据库中创建存储过程。 使用 sp_procoption 能够: 将现有存储过程指定为启动过程。

回答2:

ms_sql里面有一些未开放的文档你可以试验下

1.在 master 数据库中建立你要开机启动的存储请用sp_打头 比如说 sp_proc1
use master
if object_id(N'dbo.sp_proc1','P') is not null
drop proc dbo.sp_proc1
go
create proc sp_proc1
as
...

2.把sp_proc1 指定为系统过程

exec sp_ms_marksystemobject 'dbo.proc1'

3.把sp_proc1 指定为开机启动运行

exec dbo.sp_procoption 'sp_proc1','startup','true'