일괄 처리

업데이트: 2005년 12월 5일

일괄 처리는 실행을 위해 응용 프로그램에서 SQL Server 2005로 동시에 전송된 하나 이상의 Transact-SQL 문 그룹입니다. SQL Server에서는 일괄 처리에 포함된 여러 개의 문을 실행 계획이라고 하는 단일 실행 단위로 컴파일합니다. 실행 계획에 있는 문은 한 번에 하나씩 실행됩니다.

구문 오류와 같은 컴파일 오류가 발생하면 실행 계획이 컴파일되지 않고 일괄 처리에 있는 모든 문이 실행되지 않습니다.

산술 오버플로 또는 제약 조건 위반과 같은 런타임 오류가 발생하면 다음 결과 중 하나가 나타납니다.

  • 대부분의 런타임 오류는 일괄 처리에서 현재 문과 그 뒤에 나오는 문을 중지합니다.
  • 제약 조건 위반과 같은 몇 가지 런타임 오류는 현재 문만 중지합니다. 일괄 처리에 있는 나머지 문은 모두 실행됩니다.

런타임 오류가 발생한 문 전에 실행된 문은 영향을 받지 않습니다. 단, 일괄 처리가 트랜잭션에 있고 오류에 의해 트랜잭션이 롤백될 때는 예외입니다. 이 경우, 런타임 오류 전에 커밋되지 않은 데이터 수정은 롤백됩니다.

예를 들어 일괄 처리에 10개의 문이 있다고 가정합니다. 5번째 문에 구문 오류가 있으면 일괄 처리에 있는 모든 문이 실행되지 않습니다. 일괄 처리가 컴파일되었는데 실행 중에 두 번째 문이 실패하면 첫 번째 문은 이미 실행되었으므로 영향을 받지 않습니다.

SQL Server 2005에서는 문 수준의 다시 컴파일 기능을 제공합니다. 즉, 문에서 다시 컴파일을 트리거하면 전체 일괄 처리가 아닌 해당 문만 다시 컴파일됩니다. 이 기능은 SQL Server 2000과 구별되는 기능입니다. CREATE TABLE 문과 4개의 INSERT 문이 하나의 일괄 처리에 포함되어 있는 다음 예를 살펴 보십시오.

CREATE TABLE dbo.t3(a int)
INSERT INTO dbo.t3 VALUES (1) 
INSERT INTO dbo.t3 VALUES (1,1) 
INSERT INTO dbo.t3 VALUES (3) 
GO

SELECT * FROM dbo.t3

첫 번째, 일괄 처리가 컴파일됩니다. CREATE TABLE 문은 컴파일되었지만 dbo.t3 테이블이 아직 없으므로 INSERT 문은 컴파일되지 않습니다.

두 번째, 일괄 처리가 실행되기 시작합니다. 테이블이 생성됩니다. 첫 번째 INSERT가 컴파일된 후 즉시 실행됩니다. 이제 테이블에 하나의 행이 있습니다. 다음으로 두 번째 INSERT 문이 컴파일됩니다. 컴파일이 실패하고 일괄 처리가 종료됩니다. SELECT 문이 하나의 행을 반환합니다.

SQL Server 2000에서는 일괄 처리가 실행되기 시작하고 테이블이 생성됩니다. 3개의 INSERT 문이 하나씩 컴파일되지만 실행되지는 않습니다. 두 번째 INSERT에서 오류가 발생하기 때문에 전체 일괄 처리가 종료됩니다. SELECT 문이 행을 반환하지 않습니다.

일괄 처리 사용 규칙

일괄 처리 사용에는 다음 규칙이 적용됩니다.

  • CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE SCHEMA, CREATE TRIGGER 및 CREATE VIEW 문은 일괄 처리에 있는 다른 문과 결합될 수 없습니다. CREATE 문은 반드시 일괄 처리를 시작해야 합니다. 일괄 처리에서 CREATE 문 뒤에 오는 모든 다른 문은 첫 번째 CREATE 문 정의의 일부로 해석됩니다.
  • 동일한 일괄 처리에서 테이블을 변경한 다음 새 열을 참조할 수 없습니다.
  • 일괄 처리의 첫 문이 EXECUTE 문이면 EXECUTE 키워드는 필요 없습니다. EXECUTE 키워드는 EXECUTE 문이 일괄 처리의 첫 문이 아닐 때 필요합니다.
ms175502.note(ko-kr,SQL.90).gif중요:
일괄 처리 파일에는 일반 텍스트로 저장된 자격 증명이 포함될 수 있습니다. 자격 증명은 일괄 처리를 실행하는 동안 사용자의 화면에 표시됩니다.

참고 항목

개념

일괄 처리 실행 환경 및 MARS
일괄 처리 지정
일괄 처리 예

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2005년 12월 5일

새로운 내용
  • 문 수준의 다시 컴파일 기능에 대한 정보를 추가했습니다.
  • 보안 정보를 추가했습니다.