?? 10.2.2 使用作業異步調用存儲過程的示例.sql
字號:
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
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -