반응형
SQL Server 2005에서는 대량 가져오기 및 내보내기 작업을 수행하는 방법에 한 가지가 새롭게 추가되었습니다.
- bcp(대량 복사 프로그램) 명령
- 두 가지 Transact-SQL 문
- BULK INSERT
- INSERT ... SELECT * FROM OPENROWSET(BULK...)
OPENROWSET (Transact-SQL)에 대해서는 이미 알고 계실 겁니다.
OPENROWSET은 OLE DB를 사용하여 원격 데이터에 연결하고 액세스하는 일회성의 임시 방법이며 연결된 서버에서 테이블을 액세스하는 방법의 대안입니다. OPENROWSET 함수는 쿼리의 FROM 절에서 테이블 이름인 것처럼 참조할 수 있습니다. 또한 OLE DB 공급자의 기능에 따라 INSERT, UPDATE 및 DELETE 문의 대상 테이블로도 OPENROWSET 함수를 참조할 수 있습니다.
SQL Server 2005에서는 OPENROWSET이 파일의 데이터를 읽어 행 집합으로 반환할 수 있는 기본 제공 BULK 공급자를 이용한 대량 작업도 지원합니다.
다음 예제 스크립트를 참조하세요.
OPENROWSET은 OLE DB를 사용하여 원격 데이터에 연결하고 액세스하는 일회성의 임시 방법이며 연결된 서버에서 테이블을 액세스하는 방법의 대안입니다. OPENROWSET 함수는 쿼리의 FROM 절에서 테이블 이름인 것처럼 참조할 수 있습니다. 또한 OLE DB 공급자의 기능에 따라 INSERT, UPDATE 및 DELETE 문의 대상 테이블로도 OPENROWSET 함수를 참조할 수 있습니다.
SQL Server 2005에서는 OPENROWSET이 파일의 데이터를 읽어 행 집합으로 반환할 수 있는 기본 제공 BULK 공급자를 이용한 대량 작업도 지원합니다.
다음 예제 스크립트를 참조하세요.
USE tempdb
GO
-- 1) varbinary(max) 컬럼을 가지는 테스트 테이블 생성하기
CREATE TABLE Logo (
ID int NOT NULL,
Gif varbinary(max));
GO
-- 2) 이미지 파일을 테이블로 INSERT하기
INSERT Logo (ID, Gif)
SELECT 1, BulkColumn
FROM OPENROWSET (BULK N'C:\test\ADConsulting_logo.gif', SINGLE_BLOB) AS Pic
GO
SELECT Gif FROM Logo
GO
-- 3) 테이블의 컬럼에 저장되어 있는 gif를 UPDATE하기
UPDATE Logo
SET Gif = (
SELECT BulkColumn
FROM OPENROWSET (BULK N'C:\test\sqlservercentral_logo.gif', SINGLE_BLOB) AS Pic)
WHERE ID = 1
GO
SELECT Gif FROM Logo
GO
참고로 OPENROWSET ... BULK에는 3가지 옵션이 있습니다.
- SINGLE_BLOB
- SINGLE_CLOB
- SINGLE_NCLOB
자세한 내용은 SQL Server 온라인 설명서를 참조하기 바랍니다.
반응형
'연구개발 > DBA' 카테고리의 다른 글
쿼리 힌트 - OPTION 절 (0) | 2009.07.29 |
---|---|
CTE를 이용한 날짜 집합 이용하기 (0) | 2009.07.29 |
.WRITE 절을 사용하여 큰 값 데이터 형식 업데이트하기 (0) | 2009.07.29 |
varchar(max) + 청크 업데이트(Chunk Update) 성능 비교 (0) | 2009.07.29 |
로그 전달 환경에서 데이터 파일 추가 시 처리 문제 (0) | 2009.07.28 |