2013-04-09 33 views

回答

8
-- Create SQL Server Agent job start stored procedure with input parameter 
CREATE PROC uspStartMyJob @MyJobName sysname 
AS 
DECLARE @ReturnCode tinyint -- 0 (success) or 1 (failure) 
EXEC @ReturnCode=msdb.dbo.sp_start_job @[email protected]; 
RETURN (@ReturnCode) 
GO 

中或不使用参数:

-- Create stored procedure to start SQL Server Agent job 
CREATE PROC StartMyMonthlyInventoryJob 
AS 
EXEC msdb.dbo.sp_start_job N'Monthly Inventory Processing'; 
GO 
-- Execute t-sql stored procedure 
EXEC StartMyMonthlyInventoryJob 

编辑FYI:您可以使用此之前开始。如果你不想,如果它是启动作业正在运行,在存储过程中运行:

-- Get run status of a job 
-- version for SQL Server 2008 T-SQL - Running = 1 = currently executing 
-- use YOUR guid here 
DECLARE @job_id uniqueidentifier = '5d00732-69E0-2937-8238-40F54CF36BB1' 
EXEC master.dbo.xp_sqlagent_enum_jobs 1, sa, @job_id 
2

创建您的存储过程并运行jo b里面你的proc如下:

DECLARE @JobId binary(16) 
SELECT @JobId = job_id FROM msdb.dbo.sysjobs WHERE (name = 'JobName') 

IF (@JobId IS NOT NULL) 
BEGIN 
    EXEC msdb.dbo.sp_start_job @job_id = @JobId; 
END