>

SQL 작업 목록이 있고 주어진 테스트 (작업 이름)가 작업 내에 존재하는지 여부를 평가하는 단위 테스트를 만들고 싶습니다.

내가 시도했다 :

-- Test function
     DECLARE @FinalResult NVARCHAR(30)
     DECLARE @ResultTable TABLE (name VARCHAR(30))
     INSERT INTO @ResultTable
     SELECT [name] 
     FROM msdb.dbo.sysjobs
     WHERE [name] = @Parameter_Name
     -- Evaluation
     SET @FinalResult = SELECT TOP 1 FROM @ResultTable
     SELECT @TestResult = IIF(FinalResult IS NULL,0,1)

미리 감사합니다.

  • 답변 # 1

    EXISTS() 를 사용할 수 있습니다 :

    IF EXISTS(SELECT 1 FROM SomeWhere WHERE SomeCondition) --The '1' is of no importance... Just checking for any result...
    BEGIN
        Do what ever you need
    END
    
    

    ELSE 를 추가 할 수 있습니다  반대쪽에도 반응하도록 차단하십시오.

    힌트 : IF NOT EXISTS() 를 사용하여이를 쉽게 무효화 할 수 있습니다. ...

  • 답변 # 2

    아주 간단한 방법은

    Declare @JobExists INT
        ,   @Parameter_Name SYSNAME = 'Backup Job';
    IF EXISTS ( SELECT 1 FROM msdb.dbo.sysjobs WHERE [name] = @Parameter_Name)
        BEGIN
          SET @JobExists =1;
        END
    ELSE 
        BEGIN
          SET @JobExists =0;
        END
    
    

  • 답변 # 3

    아마도 :

       DECLARE @Parameter_Name Varchar(MAX) = '' -- Job name
        DECLARE @ResultTable TABLE (name VARCHAR(30),JobExists bit )
        IF EXISTS( SELECT [name]  FROM msdb.dbo.sysjobs WHERE [name] = @Parameter_Name) 
        BEGIN
            INSERT INTO @ResultTable (name, JobExists )
            Values (@Parameter_Name,1)
        END
    ELSE
        BEGIN
            INSERT INTO @ResultTable (name, JobExists )
            Values (@Parameter_Name,0)
        END
    
    

관련 자료

  • 이전 php - MYSQL 시작 종료 날짜 날짜 형식 d-m-Y 중에서 선택
  • 다음 vba - 파일이 이미 다른 폴더에 저장되어 있는지 확인