/*
테스트용으로 northwind를 복사한 newNorthwind라는 DB를 사용합니다.
<<백업/복원이나 DTS 와 같은 기능을 이용해서 직접 작업하시면 됩니다.>>
*/
use newNorthwind
/*
원본 dtproperties 확인
EM에서 작성한 다이어그램은 dtproperties 시스템 테이블에 저장된다.
다이어그램을 복사하고자 할 경우, dtproperties 테이블의 데이터를 복사함으로써
프로그램으로 다이어그램 복사 작업이 가능하다.
다이어그램 하나 당 7개의 row로 구성된다.
*/
select * from northwind.dbo.dtproperties
/*
dtproperties 테이블의 몇 가지 특징
- 타입은 user 테이블이다.
- EM에서는 system table 로 출력된다.
이 테이블은 SQL Server에 의해서 내부적으로 생성되기 때문에
'IsMSShipped' 속성을 가지고 있고 이로 인해 EM에서 system table로
출력이 된다.
*/
select * from sysobjects
where id = object_id('dtproperties')
-- IsMSShipped: MS SQL Server 2000에 의해서 (설치동안) 작성된 테이블
select name, objectproperty(id, 'IsMSShipped'), objectproperty(id, 'IsSystemTable') from sysobjects
where id = object_id('dtproperties')
--dtproperties 생성, 없는 경우 em에서 다이어그램 항목을 클릭하면 하면 자동 생성됨.
select * from dbo.dtproperties
-- id 컬럼이 identity 속성을 가지고 있다.
exec sp_help dtproperties
/*시작*/
--시스템 테이블에 수정을 가능하게 한다.
EXEC sp_configure 'allow updates', 1
RECONFIGURE WITH OVERRIDE
GO
UPDATE sysobjects
SET xtype = 'U'
WHERE name = 'dtproperties'
-- 이동할 데이터베이스의 dtproperties id insert 설정
set identity_insert dtproperties on
-- 복사
INSERT INTO newnorthwind.dbo.dtproperties
(id, objectid, property, value, uvalue, lvalue, version)
SELECT id, objectid, property, value, uvalue, lvalue, version
FROM northwind.dbo.dtproperties
set identity_insert dtproperties off
--다시 테이블의 속성을 시스템 테이블로 변경한다.
UPDATE sysobjects
SET xtype = 'S'
WHERE name = 'dtproperties'
--시스템 테이블에 수정을 불가하게 한다.
EXEC sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE
GO
/*끝*/
--완료 후, EM 다이어그램에서 새로 고침후 확인
참고 :
DTS(Data Transfer Service) - DTS 위져드 사용 : http://sqler.pe.kr/sql2k/1202.asp
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=39&MAEULNO=16&no=483&page=14