sp_stop_job(Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed Instance

SQL Server 에이전트 작업 실행을 중지하도록 지시합니다.

Transact-SQL 구문 표기 규칙

구문

sp_stop_job
    [ [ @job_name = ] N'job_name' ]
    [ , [ @job_id = ] 'job_id' ]
    [ , [ @originating_server = ] N'originating_server' ]
    [ , [ @server_name = ] N'server_name' ]
[ ; ]

인수

[ @job_name = ] N'job_name'

중지할 작업의 이름입니다. @job_name sysname이며 기본값은 .입니다NULL.

[ @job_id = ] 'job_id'

중지할 작업의 ID 번호입니다. @job_id 기본값NULLuniqueidentifier입니다.

[ @originating_server = ] N'originating_server'

원래 서버의 이름입니다. 지정하면 모든 다중 서버 작업이 중지됩니다. @originating_server sysname이며 기본값은 .입니다NULL. 대상 서버에서 호출 sp_stop_job 할 때만 이 매개 변수를 지정합니다.

다중 서버 관리istration(MSX/TSX) 기능은 Azure SQL Managed Instance에서 지원되지 않습니다.

참고 항목

처음 세 매개 변수 중 하나만 지정할 수 있습니다.

[ @server_name = ] N'server_name'

다중 서버 작업을 중지할 특정 대상 서버의 이름입니다. @server_name sysname이며 기본값은 .입니다NULL. 다중 서버 작업에 대해 원래 서버에서 호출 sp_stop_job 하는 경우에만 이 매개 변수를 지정합니다.

반환 코드 값

0 (성공) 또는 1 (실패).

결과 집합

없음.

설명

sp_stop_job 는 중지 신호를 데이터베이스에 보냅니다. 일부 프로세스는 즉시 중지할 수 있으며 일부는 중지하기 전에 안정적인 지점(또는 코드 경로의 진입점)에 도달해야 합니다. 일부 장기 실행 Transact-SQL 문(예: BACKUP, RESTORE및 일부 DBCC 명령)을 완료하는 데 시간이 오래 걸릴 수 있습니다. 이러한 명령을 실행하는 경우 작업이 취소되기까지 시간이 걸릴 수 있습니다. 작업을 중지하면 작업 기록에 "작업 취소됨" 항목이 기록됩니다.

작업이 현재 CmdExec 또는 PowerShell 형식의 단계를 실행하는 경우 실행 중인 프로세스(예: MyProgram.exe)가 조기에 종료됩니다. 조기 종료로 인해 프로세스에서 사용 중인 파일과 같은 예측할 수 없는 동작이 발생할 수 있습니다. sp_stop_job 따라서 작업에 CmdExec 또는 PowerShell 형식의 단계가 포함된 경우 극단적인 상황에서만 사용해야 합니다.

이 저장 프로시저는 Azure SQL Database용 Azure Elastic Jobs 서비스에 대한 유사한 개체와 이름을 sp_stop_job 공유합니다. 탄력적 작업 버전에 대한 자세한 내용은 jobs.sp_stop_job(Azure 탄력적 작업)(Transact-SQL)을 참조하세요.

사용 권한

이 저장 프로시저는 db_owner 역할이 소유합니다. 모든 사용자에 대한 사용 권한을 부여 EXECUTE 할 수 있지만 SQL Server 업그레이드 중에 이러한 권한이 재정의될 수 있습니다.

다른 사용자에게는 데이터베이스에서 다음 SQL Server 에이전트 고정 데이터베이스 역할 msdb 중 하나가 부여되어야 합니다.

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

이러한 역할의 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하세요.

SQLAgentUserRoleSQLAgentReaderRole멤버는 자신이 소유한 작업만 중지할 수 있습니다. SQLAgentOperatorRole멤버는 다른 사용자가 소유한 작업을 포함하여 모든 로컬 작업을 중지할 수 있습니다. sysadmin멤버는 모든 로컬 및 다중 서버 작업을 중지할 수 있습니다.

예제

다음 예제에서는 이름이 지정된 Weekly Sales Data Backup작업을 중지합니다.

USE msdb;
GO

EXEC dbo.sp_stop_job N'Weekly Sales Data Backup';
GO