반응형
SQL Server 에이전트 작업-존재 후 삭제 하시겠습니까?
SQL Server 에이전트 작업이있는 경우 (있는 경우에만) 삭제하려면 어떻게해야합니까?
이것은 저장 프로 시저에 대해 잘 작동하는 스크립트입니다 . SQL Server 에이전트 작업에 동일한 작업을 수행하려면 어떻게해야합니까?
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[storedproc]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[storedproc]
GO
CREATE PROCEDURE [dbo].[storedproc] ...
다음과 같이 시도하십시오.
DECLARE @jobId binary(16)
SELECT @jobId = job_id FROM msdb.dbo.sysjobs WHERE (name = N'Name of Your Job')
IF (@jobId IS NOT NULL)
BEGIN
EXEC msdb.dbo.sp_delete_job @jobId
END
DECLARE @ReturnCode int
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Name of Your Job'
'sp_add_job' 및 'sp_delete_job'에 필요한 모든 매개 변수에 대한 문서를 읽는 것이 가장 좋습니다.
IF EXISTS (SELECT job_id
FROM msdb.dbo.sysjobs_view
WHERE name = N'Your Job Name')
EXEC msdb.dbo.sp_delete_job @job_name=N'Your Job Name'
, @delete_unused_schedule=1
작업에 대한 SQL 스크립트를 생성하면 (엔터프라이즈 관리자로 테스트 됨) 자동으로 존재 여부 확인 및 삭제 문이 작성됩니다. 아래 예 :-
DECLARE @JobID BINARY(16)
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
-- Delete the job with the same name (if it exists)
SELECT @JobID = job_id
FROM msdb.dbo.sysjobs
WHERE (name = N'My test job')
IF (@JobID IS NOT NULL)
BEGIN
-- Check if the job is a multi-server job
IF (EXISTS (SELECT *
FROM msdb.dbo.sysjobservers
WHERE (job_id = @JobID) AND (server_id <> 0)))
BEGIN
-- There is, so abort the script
RAISERROR (N'Unable to import job ''My test job'' since there is already a multi-server job with this name.', 16, 1)
END
ELSE
-- Delete the [local] job
EXECUTE msdb.dbo.sp_delete_job @job_name = N'My test job'
SELECT @JobID = NULL
END
참조 URL : https://stackoverflow.com/questions/136771/sql-server-agent-job-exists-then-drop
반응형
'programing' 카테고리의 다른 글
stdout/stderr 문자열로 리다이렉트 (0) | 2022.07.02 |
---|---|
2개의 css 스타일파일(rtl, ltr) vue.display 간에 전환하는 방법 (0) | 2022.07.02 |
C #을 사용하여 프로그래밍 방식으로 로컬 컴퓨터 저장소에 인증서를 설치하려면 어떻게해야합니까? (0) | 2021.01.19 |
JarOutputStream을 사용하여 JAR 파일을 생성하는 방법은 무엇입니까? (0) | 2021.01.19 |
Eclipse Android 변경 API 레벨 (0) | 2021.01.19 |