C\#에서 sql 문장 이 정확 한 지 검증 합 니 다(실행 되 지 않 는 문장)

SET PARSEOnly 는 모든 Transact-SQL 문장의 문법 을 검사 하고 오류 메 시 지 를 되 돌려 주지 만 문 구 를 컴 파일 하거나 실행 하지 않 습 니 다.SET PARSEOnly{ON|OFF}SET PARSEOnly 가 ON 일 때 SQL Server 는 구문 만 분석 합 니 다.SET PARSEOnly 가 OFF 일 때 SQL Server 가 문 구 를 컴 파일 하고 실행 합 니 다.SET PARSEOnly 의 설정 은 실행 하거나 실행 할 때 설정 하 는 것 이 아니 라 분석 할 때 설정 합 니 다.저장 프로시저 나 트리거 에 PARSEOnlY 를 사용 하지 마 십시오.OFFSETS 옵션 이 ON 이 고 오류 가 발생 하지 않 았 다 면 SET PARSEOnly 는 오프셋 을 되 돌려 줍 니 다.
SET NOEXEC(Transact-SQL)는 모든 조 회 를 컴 파일 하지만 조 회 를 실행 하지 않 습 니 다.SET NOEXEC{ON|OFF}SET NOEXEC 가 ON 일 때 SQL Server 는 모든 처리 Transact-SQL 문 구 를 컴 파일 하지만 실행 하지 않 습 니 다.SET NOEXEC 가 OFF 로 설정 되면 모든 일괄 처 리 는 컴 파일 후 실 행 됩 니 다.SQL Server 의 문 구 는 컴 파일 과 실행 두 단 계 를 포함 합 니 다.이 설정 은 SQL Server 가 Transact-SQL 코드 를 실행 할 때 코드 의 문법 과 대상 이름 을 검증 하 는 데 사용 할 수 있 습 니 다.그것 도 일반적으로 비교적 큰 일괄 처리 중의 일부 문 구 를 디 버 깅 하 는 데 사용 할 수 있다.
SET NOEXEC 설정 은 분석 할 때 설정 하 는 것 이 아니 라 실행 하거나 실행 할 때 설정 합 니 다.
SET PARSEOnly 코드:

public bool ValidateSQL(string sql) 
    { 
        bool bResult; 

        SqlCommand cmd = _conn.CreateCommand(); 
        cmd.CommandText = "SET PARSEONLY ON"; 
        cmd.ExecuteNonQuery(); 
        try 
        { 
            cmd.CommandText = sql; 
            cmd.ExecuteNonQuery(); 
            bResult = true; 
        } 
        catch (Exception ex) 
        { 
            bResult = false; 
        } 
        finally 
        { 
            cmd.CommandText = "SET PARSEONLY OFF"; 
            cmd.ExecuteNonQuery(); 
        } 

        return bResult; 
    }

좋은 웹페이지 즐겨찾기