다음을 통해 공유


CmdExec 작업 단계 만들기

적용 대상:SQL ServerAzure SQL Managed Instance

중요하다

Azure SQL Managed Instance 에서는 현재 대부분의 SQL Server 에이전트 기능이 지원되지만, 모든 기능이 지원되는 것은 아닙니다. SQL Server 과(와) Azure SQL Managed Instance T-SQL 차이점를 참조하세요.

이 항목에서는 SQL Server Management Studio, Transact-SQL 또는 SQL Server 관리 개체를 사용하여 실행 프로그램 또는 운영 체제 명령을 사용하는 MICROSOFT SQL Server 에이전트 작업 단계를 만들고 정의하는 방법에 대해 설명합니다.

시작하기 전에

안전

기본적으로 sysadmin 고정 서버 역할의 멤버만 CmdExec 작업 단계를 만들 수 있습니다. 이러한 작업 단계는 sysadmin 사용자가 프록시 계정을 만들지 않는 한 SQL Server 에이전트 서비스 계정의 컨텍스트에서 실행됩니다. sysadmin 역할의 멤버가 아닌 사용자는 CmdExec 프록시 계정에 액세스할 수 있는 경우 CmdExec 작업 단계를 만들 수 있습니다.

권한

자세한 내용은 SQL Server 에이전트 보안구현을 참조하세요.

SQL Server Management Studio 사용

CmdExec 작업 단계를 만들려면

  1. 개체 탐색기에서 SQL Server 데이터베이스 엔진의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.

  2. SQL Server 에이전트 을 확장한 후, 새 작업을 만들거나 기존 작업을 마우스 오른쪽 버튼으로 클릭한 다음 속성을 클릭합니다.

  3. 작업 속성 대화 상자에서 단계 페이지를 클릭한 다음 클릭합니다.

  4. 새 작업 단계 대화 상자에서 작업 단계 이름입력합니다.

  5. 형식 목록에서 운영 체제(CmdExec)선택합니다.

  6. 실행 목록에서 작업에서 사용할 자격 증명이 있는 프록시 계정을 선택합니다. 기본적으로 CmdExec 작업 단계는 SQL Server 에이전트 서비스 계정의 컨텍스트에서 실행됩니다.

  7. 성공한 명령 상자의 프로세스 종료 코드에서 0에서 999999 값을 입력합니다.

  8. 명령 상자에 운영 체제 명령 또는 실행 프로그램을 입력합니다. 예제는 "Transact T-SQL 사용.을 참조하세요.

  9. 고급 페이지를 클릭하여 작업 단계가 성공하거나 실패할 경우 수행할 작업, SQL Server 에이전트가 작업 단계를 실행해야 하는 횟수 및 SQL Server 에이전트가 작업 단계 출력을 작성할 수 있는 파일과 같은 작업 단계 옵션을 설정합니다. sysadmin 고정 서버 역할의 멤버만 작업 단계 출력을 운영 체제 파일에 쓸 수 있습니다.

Transact-SQL 사용

CmdExec 작업 단계를 만들려면

  1. 개체 탐색기데이터베이스 엔진 인스턴스에 연결합니다.

  2. 표준 표시줄에서 새 쿼리클릭합니다.

  3. 다음 예제를 복사하여 쿼리 창에 붙여넣고 실행을 클릭합니다.

    -- creates a job step that uses CmdExec  
    USE msdb;  
    GO  
    EXEC sp_add_jobstep  
        @job_name = N'Weekly Sales Data Backup',  
        @step_name = N'Set database to read only',  
        @subsystem = N'CMDEXEC',  
        @command = 'C:\clickme_scripts\SQL11\PostBOLReorg GetHsX.exe',   
        @retry_attempts = 5,  
        @retry_interval = 5 ;  
    GO  
    

자세한 내용은 sp_add_jobstep(Transact-SQL) 참조하세요.

SQL Server 관리 개체 사용

CmdExec 작업 단계를 만들려면

Visual Basic, Visual C# 또는 PowerShell과 같이 선택한 프로그래밍 언어를 사용하여 JobStep 클래스를 사용합니다.