The meta data is from an SQL 2012 Server.
I have posted alot more, find the whole list here.
Goto Definition or MetaData
Definition:
sys.sp_MSremoveoffloadparameter(varbinary @job_id, nvarchar @agenttype)
MetaData:
create procedure sys.sp_MSremoveoffloadparameter ( @job_id VARBINARY(16), @agenttype NVARCHAR(20) ) AS SET NOCOUNT ON -- -- Declarations -- DECLARE @paramstart INT DECLARE @paramend INT DECLARE @paramlen INT DECLARE @paramend2 INT DECLARE @command NVARCHAR(3200) DECLARE @commandtail NVARCHAR(3200) DECLARE @pattern NVARCHAR(100) SELECT @pattern = N'%-[Oo][Ff][Ff][Ll][Oo][Aa][Dd]%' SELECT @paramlen = LEN(N'-offload') SELECT @command = NULL -- -- Security Check: require sysadmin -- IF (ISNULL(IS_SRVROLEMEMBER('sysadmin'),0) = 0) BEGIN RAISERROR(21089,16,-1) RETURN (1) END -- use the job_id and the agent type to retrieve the agent command -- line, only one agent command step is allowed in a job SELECT @command = command FROM msdb.dbo.sysjobsteps WHERE job_id = @job_id AND LOWER(subsystem collate SQL_Latin1_General_CP1_CS_AS) = LOWER(@agenttype collate SQL_Latin1_General_CP1_CS_AS) -- purge all instances of '-offload servername' from the agent command line SELECT @paramstart = PATINDEX(@pattern, @command) WHILE ((@command IS NOT NULL) AND (@paramstart <> 0)) BEGIN -- extract the part of the command line after the -Offload parameter SELECT @commandtail = SUBSTRING(@command, @paramstart + @paramlen, LEN(@command) - (@paramstart + @paramlen) + 1) -- search for the beginning of the server name that follows -offload -- in the command tail; note that the empty spaces in the square -- bracket of the pattern are actually a space and a tab SELECT @paramend = PATINDEX(N'%[^ ]%', @commandtail) -- search for the end of the server name that follows -offload IF (@paramend <> 0) BEGIN SELECT @commandtail = SUBSTRING(@commandtail, @paramend, LEN(@commandtail) - @paramend + 1) SELECT @paramend2 = PATINDEX(N'%[ ]%', @commandtail) IF (@paramend2 <> 0) BEGIN SELECT @paramend = @paramend + @paramend2 - 1 END ELSE BEGIN -- reaching the end of the command line SELECT @paramend = @paramend + LEN(@commandtail) - 1 IF @paramstart > 1 BEGIN SELECT @paramstart = @paramstart - 1 SELECT @paramend = @paramend + 1 END END END -- Remove the -Offload parameter from the command line SELECT @command = STUFF(@command, @paramstart, @paramlen + @paramend, N'') SELECT @paramstart = PATINDEX(@pattern, @command) END -- update the agent command line with all the -offload's removed UPDATE msdb.dbo.sysjobsteps SET command = @command WHERE job_id = @job_id AND LOWER(subsystem collate SQL_Latin1_General_CP1_CS_AS) = LOWER(@agenttype collate SQL_Latin1_General_CP1_CS_AS) RETURN 0
No comments:
Post a Comment