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

T-SQL을 사용하여 테이블을 특정 스키마로 이동하고 싶습니까? SQL Server 2008을 사용하고 있습니다.



답변

ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName;

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

exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"

참조 : ALTER SCHEMA

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


답변

짧은 답변:

ALTER SCHEMA new_schema TRANSFER old_schema.table_name

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

MSDN 문서에 따른 긴 답변 ,

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

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


답변