반응형
.WRITE를 사용하면 테이블 또는 뷰의 기존 데이터를 변경할 수 있습니다.
UPDATE 문을 사용하여 데이터를 변경하면 로그가 기록되지만 .WRITE 절을 사용하여 큰 값 데이터 형식에 대하여 부분 업데이트를 수행하면 최소 로깅됩니다.
varchar(max) + 청크 업데이트(Chunk Update) 성능 비교에 있는 내용을 참고로 읽어 보세요.
UPDATE 문에 .WRITE (expression, @Offset, @Length) 절을 사용하여 varchar(max), nvarchar(max), varbinary(max) 데이터 형식의 부분 또는 전체를 업데이트할 수 있습니다. 다음은 UPDATE 문에 .WRITE 절을 사용하여 테스트해 본 스크립트입니다.
USE NewDatatype
GO
-- 테이블 및 테스트 데이터 생성하기
CREATE TABLE max_write (
id int,
maxcol varchar(max));
GO
INSERT max_write (id, maxcol) VALUES (1, '012..56..9');
GO
SELECT * FROM max_write WHERE id = 1;
GO
--> 012..56..9
UPDATE 문을 사용하여 데이터를 변경하면 로그가 기록되지만 .WRITE 절을 사용하여 큰 값 데이터 형식에 대하여 부분 업데이트를 수행하면 최소 로깅됩니다.
varchar(max) + 청크 업데이트(Chunk Update) 성능 비교에 있는 내용을 참고로 읽어 보세요.
UPDATE 문에 .WRITE (expression, @Offset, @Length) 절을 사용하여 varchar(max), nvarchar(max), varbinary(max) 데이터 형식의 부분 또는 전체를 업데이트할 수 있습니다. 다음은 UPDATE 문에 .WRITE 절을 사용하여 테스트해 본 스크립트입니다.
USE NewDatatype
GO
-- 테이블 및 테스트 데이터 생성하기
CREATE TABLE max_write (
id int,
maxcol varchar(max));
GO
INSERT max_write (id, maxcol) VALUES (1, '012..56..9');
GO
SELECT * FROM max_write WHERE id = 1;
GO
--> 012..56..9
-- 1) 부분 대체
UPDATE max_write SET maxcol .WRITE ('34', 3, 2) WHERE ID = 1 ;
GO
SELECT * FROM max_write WHERE ID = 1 ;
GO
--> 0123456..9
-- 2) 부분 제거
UPDATE max_write SET maxcol .WRITE ('', 7, 2) WHERE ID = 1 ;
GO
SELECT * FROM max_write WHERE ID = 1;
GO
--> 01234569
-- 3) expression을 NULL로 지정 --> @Offset부터 끝까지 삭제
UPDATE max_write SET maxcol .WRITE (NULL, 7, 0) WHERE ID = 1 ;
GO
SELECT * FROM max_write WHERE ID = 1;
GO
--> 0123456
-- 4) @Offset을 NULL로 지정 --> 마지막 부분에 데이터 추가 (@Length는 무시됨)
UPDATE max_write SET maxcol .WRITE ('789', NULL, NULL) WHERE ID = 1 ;
GO
SELECT * FROM max_write WHERE ID = 1;
GO
--> 0123456789
-- 5) @Length를 NULL로 지정 --> @Offset 위치부터 시작하여 끝까지 모두 대체
UPDATE max_write SET maxcol .WRITE ('***', 10, NULL) WHERE ID = 1 ;
GO
SELECT * FROM max_write WHERE ID = 1;
GO
--> 0123456789***
-- 테스트 테이블 삭제
DROP TABLE max_write;
GO
반응형
'연구개발 > DBA' 카테고리의 다른 글
CTE를 이용한 날짜 집합 이용하기 (0) | 2009.07.29 |
---|---|
OPENROWSET을 사용하여 큰 개체 가져오기 (0) | 2009.07.29 |
varchar(max) + 청크 업데이트(Chunk Update) 성능 비교 (0) | 2009.07.29 |
로그 전달 환경에서 데이터 파일 추가 시 처리 문제 (0) | 2009.07.28 |
파일 그룹 테스트 - > 파일 그룹 백업 / 복원 (0) | 2009.07.28 |