테이블 내용을 읽어 INSERT문을 생성해 주는 스크립트는 거의 누구나 가지고 있으리라 생각합니다.
저도 누군가의 스크립트를 가지고 있는데... 버그가 좀 있습니다.
그래서 오늘 하나 만들어 봤습니다..
master.sys.fn_varbintohexstr 함수를 사용해 봤는데 꽤 유용하네요.
하지만, 저도 완벽하게는 못 만들겠더군요. 다음과 같은 제한 사항이 있습니다.
- SQL 2005와 SQL 2008에서 사용할 수 있습니다.
- 사용자 정의 형식, hierarchyid 형식은 지원하지 않습니다.
- float와 real 형식은 데이터가 손상 될 수 있습니다.
- binary, varbinary, image는 3998 byte까지만 지원합니다.
소스는 아래 박스를 참고하세요.
p.s
해당 SP의 두번째 파라미터로 WHERE절을 입력할 수 있습니다.
특정 조건을 만족하는 레코드만 추출하여 스크립트를 생성할 때 사용하면 됩니다.
예)
현재 DB컨텍스트의 모든 테이블에 대해 INSERT 스크립트를 생성하고 싶을 때는 이렇게 실행하면 됩니다.
저도 누군가의 스크립트를 가지고 있는데... 버그가 좀 있습니다.
그래서 오늘 하나 만들어 봤습니다..
master.sys.fn_varbintohexstr 함수를 사용해 봤는데 꽤 유용하네요.
하지만, 저도 완벽하게는 못 만들겠더군요. 다음과 같은 제한 사항이 있습니다.
- SQL 2005와 SQL 2008에서 사용할 수 있습니다.
- 사용자 정의 형식, hierarchyid 형식은 지원하지 않습니다.
- float와 real 형식은 데이터가 손상 될 수 있습니다.
- binary, varbinary, image는 3998 byte까지만 지원합니다.
소스는 아래 박스를 참고하세요.
p.s
해당 SP의 두번째 파라미터로 WHERE절을 입력할 수 있습니다.
특정 조건을 만족하는 레코드만 추출하여 스크립트를 생성할 때 사용하면 됩니다.
예)
EXEC sp_genInsertStmt N'TableName', N'WHERE userID = 27';
현재 DB컨텍스트의 모든 테이블에 대해 INSERT 스크립트를 생성하고 싶을 때는 이렇게 실행하면 됩니다.
EXEC sp_MSForEachTable 'EXEC sp_genInsertStmt N''?''';
'SQL Server > SQL Server Tip & Tech' 카테고리의 다른 글
affinity mask, affinity I/O mask, soft NUMA 적용 (0) | 2009.07.17 |
---|---|
SQL Server 2005 암호화 (0) | 2009.07.15 |
XML을 사용하여 문자열 Split 하기 (2) | 2009.07.10 |
Change Tracking [SQL Server 2008] (0) | 2009.06.24 |
테이블 변수 vs 임시 테이블 (0) | 2009.06.11 |