다음을 통해 공유


SQL Server XML 대량 로드 개체 모델(SQLXML 4.0)

적용 대상: SQL ServerAzure SQL Database

Microsoft SQL Server XML 대량 로드 개체 모델은 SQLXMLBulkLoad 개체로 구성됩니다. 이 개체는 다음 메서드와 속성을 지원합니다.

메서드

실행
매개 변수로 제공되는 스키마 파일 및 데이터 파일(또는 스트림)을 사용하여 데이터를 대량 로드합니다.

속성

BulkLoad
대량 로드를 수행할지 여부를 지정합니다. 이 속성은 스키마만 생성하려는 경우(다음에 오는 SchemaGen, SGDropTables 및 SGUseID 속성 참조) 대량 로드를 수행하지 않으려는 경우에 유용합니다. 부울 속성입니다. 속성이 TRUE로 설정되면 XML 대량 로드가 실행됩니다. FALSE로 설정된 경우 XML 대량 로드가 실행되지 않습니다.

기본값은 TRUE입니다.

CheckConstraints
XML 대량 로드에서 열에 데이터를 삽입할 때 열에 지정된 제약 조건(예: 열 간의 기본 키/외래 키 관계로 인한 제약 조건)을 검사할지 여부를 지정합니다. 부울 속성입니다.

속성이 TRUE로 설정되면 XML 대량 로드는 삽입된 각 값에 대한 제약 조건을 확인합니다(즉, 제약 조건 위반으로 인해 오류가 발생).

참고 항목

이 속성을 FALSE로 유지하려면 대상 테이블에 대한 ALTER TABLE 권한이 있어야 합니다. 자세한 내용은 ALTER TABLE(Transact-SQL)을 참조하세요.

기본값은 FALSE입니다. FALSE로 설정하면 XML 대량 로드는 삽입 작업 중에 제약 조건을 무시합니다. 현재 구현에서는 매핑 스키마에서 기본 키 및 외래 키 관계의 순서로 테이블을 정의해야 합니다. 즉, 외래 키가 있는 대응되는 테이블을 정의하기 전에 기본 키가 있는 테이블을 정의해야 합니다. 그렇지 않으면 XML 대량 로드가 실패합니다.

ID 전파가 수행되는 경우 이 옵션이 적용되지 않으며 제약 조건 검사가 남아 있습니다. 이는 부모가 ID 필드이고 값이 생성될 때 자식에 값이 지정된 경우와 정의된 관계가 있을 때 KeepIdentity=False 발생합니다.

ConnectionCommand
XML 대량 로드에서 사용해야 하는 기존 연결 개체(예: ADO 또는 ICommand 명령 개체)를 식별합니다. ConnectionString 속성을 사용하여 연결 문자열 지정하는 대신 ConnectionCommand 속성을 사용할 수 있습니다. ConnectionCommand를 사용하는 경우 Transaction 속성을 TRUE로 설정해야 합니다.

ConnectionString 및 ConnectionCommand 속성을 모두 사용하는 경우 XML 대량 로드는 마지막으로 지정된 속성을 사용합니다.

기본값은 NULL입니다.

ConnectionString
데이터베이스 인스턴스에 대한 연결을 설정하는 데 필요한 정보를 제공하는 OLE DB 연결 문자열 식별합니다. ConnectionString 및 ConnectionCommand 속성을 모두 사용하는 경우 XML 대량 로드는 마지막으로 지정된 속성을 사용합니다.

기본값은 NULL입니다.

ErrorLogFile
XML 대량 로드에서 오류 및 메시지를 기록하는 파일 이름을 지정합니다. 기본값은 빈 문자열이며, 이 경우 로깅이 발생하지 않습니다.

FireTriggers
대상 테이블에 정의된 트리거를 대량 로드 작업 중 실행할지 여부를 지정합니다. 기본값은 FALSE입니다.

TRUE로 설정하면 삽입 작업 중에 트리거가 정상적으로 실행됩니다.

참고 항목

이 속성을 FALSE로 유지하려면 대상 테이블에 대한 ALTER TABLE 권한이 있어야 합니다. 자세한 내용은 ALTER TABLE(Transact-SQL)을 참조하세요.

ID 전파가 수행 중인 경우에는 이 옵션이 적용되지 않고 트리거가 설정된 상태로 유지됩니다. 이는 부모가 ID 필드이고 값이 생성될 때 자식에 값이 지정된 경우와 정의된 관계가 있을 때 KeepIdentity=False 발생합니다.

ForceTableLock
대량 로드 기간 동안 XML 대량 로드에서 데이터를 복사하는 테이블을 잠글지 여부를 지정합니다. 부울 속성입니다. 이 속성이 TRUE로 설정된 경우 XML 대량 로드에서 대량 로드 작업이 진행되는 동안 테이블 잠금을 확보합니다. FALSE로 설정하면 XML 대량 로드는 테이블에 레코드를 삽입할 때마다 테이블 잠금을 획득합니다.

기본값은 FALSE입니다.

IgnoreDuplicateKeys
키 열에 중복 값을 삽입하려는 경우 수행할 작업을 지정합니다. 이 속성이 TRUE로 설정되고 키 열에 중복 값이 있는 레코드를 삽입하려고 하면 SQL Server에서 해당 레코드를 삽입하지 않습니다. 그러나 후속 레코드를 삽입합니다. 따라서 대량 로드 작업이 실패하지 않습니다. 이 속성을 FALSE로 설정하면 키 열에 중복 값을 삽입하려고 하면 대량 로드가 실패합니다.

IgnoreDuplicateKeys 속성이 TRUE로 설정되면 테이블에 삽입된 모든 레코드에 대해 COMMIT 문이 실행됩니다. 이로 인해 성능이 저하됩니다. 트랜잭션 동작이 파일을 사용하여 구현되기 때문에 Transaction 속성이 FALSE로 설정된 경우에만 속성을 TRUE로 설정할 수 있습니다.

기본값은 FALSE입니다.

KeepIdentity
원본 파일에서 ID 형식 열의 값을 처리하는 방법을 지정합니다. 부울 속성입니다. 이 속성이 TRUE로 설정된 경우 XML 대량 로드에서 원본 파일에 지정된 값을 ID 열에 할당합니다. 속성이 FALSE로 설정되면 대량 로드 작업은 원본에 지정된 ID 열 값을 무시합니다. 이 경우 SQL Server는 ID 열에 값을 할당합니다.

대량 로드에 SQL Server에서 생성된 값이 저장되는 ID 열을 참조하는 외래 키 열이 포함된 경우 대량 로드는 이러한 ID 값을 외래 키 열에 적절하게 전파합니다.

이 속성 값은 대량 로드에 포함된 모든 열에 적용됩니다. 기본값은 TRUE입니다.

참고 항목

이 속성을 TRUE로 유지하려면 대상 테이블에 대한 ALTER TABLE 권한이 있어야 합니다. 그렇지 않은 경우에는 값을 FALSE로 설정해야 합니다. 자세한 내용은 ALTER TABLE(Transact-SQL)을 참조하세요.

KeepNulls
XML 문서에서 해당 특성 또는 자식 요소가 누락된 열에 사용할 값을 지정합니다. 부울 속성입니다. 이 속성이 TRUE로 설정된 경우 XML 대량 로드에서 서버에 설정된 열의 기본값(있는 경우)이 아닌 서버에 설정된 대로 열의 기본값(있는 경우)을 할당하지 않습니다. 이 속성 값은 대량 로드에 포함된 모든 열에 적용됩니다.

기본값은 FALSE입니다.

SchemaGen
대량 로드 작업을 수행하기 전에 필요한 테이블을 만들지 여부를 지정합니다. 부울 속성입니다. 이 속성을 TRUE로 설정하면 매핑 스키마에서 식별된 테이블이 만들어집니다(데이터베이스가 있어야 합니다). 데이터베이스에 하나 이상의 테이블이 이미 있는 경우 SGDropTables 속성은 이러한 기존 테이블을 삭제하고 다시 만들지 여부를 결정합니다.

SchemaGen 속성의 기본값은 FALSE입니다. SchemaGen은 새로 만든 테이블에 PRIMARY KEY 제약 조건을 만들지 않습니다. 그러나 SchemaGen은 매핑 스키마에서 일치하는 sql:relationship 및 sql:key-fields 주석을 찾을 수 있고 키 필드 가 단일 열로 구성된 경우 데이터베이스에서 FOREIGN KEY 제약 조건을 만듭니다.

SchemaGen 속성을 TRUE로 설정하면 XML 대량 로드에서 다음을 수행합니다.

  • 요소 및 특성 이름을 사용하여 필요한 테이블을 만듭니다. 따라서 스키마의 요소 및 특성 이름에는 SQL Server 예약어를 사용하지 않는 것이 중요합니다.

  • xml 데이터 형식 형식의 sql:overflow-field사용하여 지정된 열에 대한 오버플로 데이터를 반환합니다.

SGDropTables
기존 테이블을 삭제하고 다시 만들지 여부를 지정합니다. SchemaGen 속성이 TRUE로 설정된 경우 이 속성을 사용합니다. SGDropTables가 FALSE이면 기존 테이블이 유지됩니다. 이 속성이 TRUE이면 기존 테이블이 삭제되고 다시 생성됩니다.

기본값은 FALSE입니다.

SGUseID
테이블을 만들 때 ID 형식으로 식별되는 매핑 스키마의 특성을 PRIMARY KEY 제약 조건을 만드는 데 사용할 수 있는지 여부를 지정합니다. SchemaGen 속성이 TRUE로 설정된 경우 이 속성을 사용합니다. SGUseID가 TRUE이면 SchemaGen 유틸리티는 dt:type="id"가 기본 키 열로 지정된 특성을 사용하고 테이블을 만들 때 적절한 PRIMARY KEY 제약 조건을 추가합니다.

기본값은 FALSE입니다.

TempFilePath
XML 대량 로드에서 트랜잭션된 대량 로드에 사용할 임시 파일을 만들 파일 경로를 지정합니다. (이 속성은 Transaction 속성이 TRUE로 설정된 경우에만 유용합니다.) XML 대량 로드에 사용되는 SQL Server 계정이 이 경로에 액세스할 수 있는지 확인해야 합니다. 이 속성이 설정되지 않은 경우 XML 대량 로드에서는 임시 파일을 TEMP 환경 변수에 지정된 위치에 저장합니다.

트랜잭션
대량 로드를 트랜잭션으로 수행할지 여부를 지정합니다. 트랜잭션으로 수행하면 대량 로드가 실패할 경우 롤백이 수행됩니다. 부울 속성입니다. 속성이 TRUE로 설정되면 트랜잭션 컨텍스트에서 대량 로드가 발생합니다. TempFilePath 속성은 Transaction이 TRUE로 설정된 경우에만 유용합니다.

참고 항목

이진 데이터(예: bin.hex, bin.base64 XML 데이터 형식을 이진 이미지 SQL Server 데이터 형식)로 로드하는 경우 Transaction 속성을 FALSE로 설정해야 합니다.

기본값은 FALSE입니다.

XMLFragment
원본 데이터가 XML 조각인지 여부를 지정합니다. XML 조각은 단일 최상위(루트) 요소가 없는 XML 문서입니다. 부울 속성입니다. 원본 파일이 XML 조각으로 구성되어 있으면 이 속성을 TRUE로 설정해야 합니다.

기본값은 FALSE입니다.