티스토리 뷰

SQL/MS-SQL

테이블 데이터 가져오기

공허공자 2011. 1. 3. 14:06
원본 테이블에서 다른테이블을 생성하며 가져올때
가장 문제되는 부분이
  • identity(1,1) 과 같은것
  • NULL 
  • default('')
등이다.

이 문제를 해결하려면
제약이 없는 테이블을 (테이블명 뒤에 _backup 붙이던지 해서 바꾸어)생성하고
그곳에 데이터들을 SQL Managenent Studio를 이용하여 가져오기로 넣은 뒤
최종적으로 만들려는 테이블을 제약조건을 똑같이 하여 만든 후
제약없이 만든 테이블을 커서를 이용하여 루핑돌며 최종테이블에 넣어준 후
제약없는 테이블 Drop 하면 되겠다.
declare  CURSOR_MOVE CURSOR FOR
    select [키필드] from [최종테이블] ORDER BY [키필드]

declare @num bigint

open CURSOR_MOVE
    fetch next from CURSOR_MOVE into @num

    while @@FETCH_STATUS = 0
      BEGIN
 
        insert into [최종테이블] ([필드들])
        select [필드들]
        from [제약없는테이블] where num=@num
       
        fetch next from CURSOR_MOVE into @num
    END

close CURSOR_MOVE
deallocate CURSOR_MOVE

-- 임시테이블은 제거
drop table [제약없는테이블]
go

-- 테이블 이름 변경
--EXEC sp_rename '[기존테이블명]', '[변경할테이블명]'
--go
댓글