即時通訊使用SQL Server 2012和我有一個情況下,我必須刪除SQL作業。我發現這兩種方法如下:這是正確的方式來刪除SQL Server中的多個作業
方法1
DECLARE @jobId binary(16)
WHILE (1=1)
BEGIN
SET @jobId = NULL
SELECT TOP 1 @jobId = job_id FROM msdb.dbo.sysjobs WHERE (name like N'Abc%')
IF @@ROWCOUNT = 0
BREAK
IF (@jobId IS NOT NULL)
BEGIN
EXEC msdb.dbo.sp_delete_job @jobId
END
END
方法2
DECLARE @listStr VARCHAR(MAX)=null
SELECT @listStr = COALESCE(@listStr+'exec msdb.dbo.sp_delete_job ' ,'') + '''' + convert(varchar(max),job_id) + '''; '
FROM msdb.dbo.sysjobs WHERE (name like N'$(TestPublisherServer)-$(TestPublisherDB)%')
IF @listStr is not null
BEGIN
PRINT 'exec msdb.dbo.sp_delete_job ' + @listStr
EXEC ('exec msdb.dbo.sp_delete_job ' + @listStr)
END
這兩個方法將刪除工作,但我想知道這是最好的方法,或者你可以建議我更有效或正確的方式來刪除工作。
還有一個問題是,我們必須在刪除它之前停止/禁用該作業。
TIA 戒
+1,好問題! – 2012-09-19 20:53:22
謝謝克里斯 – Harsha 2012-11-27 06:17:02