본문 바로가기

SQL Server/SQL Server Tip & Tech

INSERT 스크립트 생성하기

테이블 내용을 읽어 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''?''';