mssql 사용자 대부분이 기본스키마인 dbo를 사용을 합니다
하지만 스키마 값을 변경해서 사용중인 데이터 베이스를 복원한 경우에는 스키마 값을 변경하기가 까다로운 부분이 있습니다
테이블이 적은 경우에는 ALTER SCHEMA 명령어를 이용해서 간단하게 변경할 수 있지만 테이블수가 많은 경우에는
수많은 테이블을 하나하나 작업을 한다고 생각하면 시간낭비 및 업무 효율성이 떨어지기때문에 아래 쿼리 문을 이용하면
아주 쉽게 일괄적으로 변경이 가능합니다
1. MSSQL 쿼리문
SELECT ‘ALTER SCHEMA dbo(변경할 스키마입력) TRANSFER ‘ + s.Name + ‘.’ + o.Name
FROM sys.Objects o
INNER JOIN sys.Schemas s on o.schema_id = s.schema_id
WHERE s.Name = ‘oldschema’ (현재 사용중인 스키마 입력)
And (o.Type = ‘U’ Or o.Type = ‘P’ Or o.Type = ‘V’)
※ 쿼리문에서 Type = ‘U’ 는 테이블 , ‘P’는 스토어 프로시져 , ‘V’ 는 VIEW 테이블의 스키마를 변경한다는 내용입니다
특정 부분만 수정을 할경우에는 해당 항목에 맞는 구문만 추가 하시면 됩니다
2. 쿼리 결과
ALTER SCHEMA test TRANSFER dbo.svc_11
ALTER SCHEMA test TRANSFER dbo.SVC_22
ALTER SCHEMA test TRANSFER dbo.svc_33
ALTER SCHEMA test TRANSFER dbo.svc_44
ALTER SCHEMA test TRANSFER dbo.SVC_55
ALTER SCHEMA test TRANSFER dbo.svc_66
ALTER SCHEMA test TRANSFER dbo.svc_77
ALTER SCHEMA test TRANSFER dbo.svc_88
ALTER SCHEMA test TRANSFER dbo.SVC_99
ALTER SCHEMA test TRANSFER dbo.svc_00
위와 같은 형태의 쿼리문이 출력이 됩니다
※해당 쿼리문이 출력이 되었다고 실제 스키마가 변경된것은 아닙니다
3. 스키마 변경 적용
2번 결과에서 나온 쿼리를 복사후 MSSQL 매니지먼트 새쿼리 창을 클릭한 후
해당 쿼리의 결과를 복사후 F5 또는 쿼리 실행을 누르면 정상적으로 테이블, 프로시져, 뷰 등이 원하는 스키마로
변경된것을 확인 할 수 있다
MSSQL 매니지먼트 스튜디오 UI를 통해서도 작업이 가능하겠지만 이전을 하다보면 정상적으로 안되는 부분이 많이있다
이럴경우에는 그냥 쿼리문으로 작업을 하는게 오류도 없고 쉽게 작업을 할 수 있습니다
[polldaddy rating=”7739789″]