T-SQL에서 테이블을 스키마로 이동하는 방법


답변:


464
ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName;

모든 테이블을 새 스키마로 이동 하려면 문서화되지 않은 (그리고 언젠가는 사용되지 않지만, 가능성은 거의 없습니다!) sp_MSforeachtable저장 프로 시저를 사용할 수 있습니다.

exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"

참조 : ALTER SCHEMA

SQL 2008 : DB 스키마를 dbo로 변경하는 방법


6
2018 년에도 여전히 내 생명을 구했습니다. 정말 고마워
ClownCoder

19

짧은 답변:

ALTER SCHEMA new_schema TRANSFER old_schema.table_name

테이블의 데이터가 그대로 남아 있음을 확인할 수 있습니다. 아마도 매우 중요합니다 :)

MSDN 문서에 따른 긴 답변 ,

ALTER SCHEMA schema_name 
   TRANSFER [ Object | Type | XML Schema Collection ] securable_name [;]

테이블 (또는 유형 또는 XML 스키마 컬렉션 이외의 것) 인 경우 기본값이므로 Object라는 단어를 생략 할 수 있습니다.


1
왜 정답을위한 다운 보트가 필요한가요? 수락 된 답변과 동일하며 이미 257 개의 공감대가 있습니다 (내 포함).
리버스 엔지니어

2
데이터가 손상되지 않았 음을 확인하기위한 공감대를 가지십시오. 방금 혈압을 저장했습니다 ... :)

6
@DaveBoltnman : 허용 된 답변 6 년 후 및 "동일 함"위의 자신의 의견으로 답변을 입력했습니다.
Mitch Wheat

4
왜 테이블이 다른 스키마 컨테이너로 이동 되었기 때문에 테이블의 데이터가 그대로 유지되지 않습니까?
Mitch Wheat

2
좋은 이름 변경 @DaveBoltman. 기존 답변에 무언가를 추가하면 오래된 질문에 답변하는 것이 좋습니다.
Mitch Wheat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.