티스토리 뷰

SQL/MS-SQL

테이블 데이터 가져오기

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

이 문제를 해결하려면
제약이 없는 테이블을 (테이블명 뒤에 _backup 붙이던지 해서 바꾸어)생성하고
그곳에 데이터들을 SQL Managenent Studio를 이용하여 가져오기로 넣은 뒤
최종적으로 만들려는 테이블을 제약조건을 똑같이 하여 만든 후
제약없이 만든 테이블을 커서를 이용하여 루핑돌며 최종테이블에 넣어준 후
제약없는 테이블 Drop 하면 되겠다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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
댓글