java异步调用数据库存储过程详解_使用作业异步调用存储过程的示例

CREATE PROC sp_job_LoadPorc

@command     nvarchar(4000),         --异步调用的存储过程或者要执行的 Transact-SQL 语句

@DatabaseName sysname=NULL,        --在那个数据库中执行作业步骤,默认在当前数据库中

@jobdelay      int=5,                --当前时间后的多少秒钟执行,该值大于等于5

@jobid        uniqueidentifier OUTPUT --定义的作业编号

AS

--作业名称,作业的执行时间

DECLARE @jobname sysname,@time int

SELECT @jobname=N'临时作业'

+N'_'+LEFT(HOST_NAME(),40)

+N'_'+CONVERT(char(19),GETDATE(),120)

+N'_'+CAST(NEWID() as varchar(36)),

@jobdelay=CASE

WHEN ISNULL(@jobdelay,0)<5 THEN 5

ELSE @jobdelay+1 END,

@time=REPLACE(CONVERT(char(8),

DATEADD(Second,@jobdelay,GETDATE()),

108),':','')

--数据库名

IF DB_ID(@DatabaseName) IS NULL

SET @DatabaseName=DB_NAME()

--检查是否存在同名作业,存在则删除

IF EXISTS(SELECT * FROM msdb.dbo.sysjobs WHERE name=@jobname)

EXEC msdb..sp_delete_job @job_name=@jobname

--定义作业

EXEC msdb.dbo.sp_add_job

@job_name = @jobname,

@delete_level =3,           --作业执行后自动删除

@job_id = @jobid OUTPUT

--定义作业步骤

EXEC msdb.dbo.sp_add_jobstep

@job_id = @jobid,

@step_name = N'异步调用存储过程或者执行Transact-SQL 语句',

@subsystem = 'TSQL',

@database_name=@DatabaseName,

@command = @command

--创建调度

EXEC msdb..sp_add_jobschedule

@job_id = @jobid,

@name = N'异步调用存储过程或者执行Transact-SQL 语句',

@freq_type=1,

@active_start_time = @time

--添加目标服务器

DECLARE @servername sysname

SET @servername=CONVERT(nvarchar(128),SERVERPROPERTY(N'ServerName'))

EXEC msdb.dbo.sp_add_jobserver

@job_id = @jobid,

@server_name = @servername

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值