2010-06-21 3 views
1

MSSQL 2005를 사용하여 다른 드라이브에 파일 그룹을 만든 다음 테이블을이 폴더로 옮기는 방법은 무엇입니까?다른 드라이브에 파일 그룹 생성 및 테이블 이동

예 : 내 데이터베이스는 H에 : \ Product.mdf 및 H : \ Product.ldf

나는 F에 새 파일 그룹을 만들려면 : \ 파일 그룹 \ 다음 클러스터 된 인덱스 내 테이블을 이동 이 새 파일 그룹에 추가하십시오.

답변

3

이것은 간단한 작업이 아니며 테이블 크기에 따라 가동 중지 시간이 필요할 수 있습니다. 예를 들어,

ALTER DATABASE MyDatabase 
add filegroup NewGroup 

해당 파일 그룹에 대한 적절한 파일을 만듭니다 :

첫째, 당신은 새 파일 그룹을 정의해야

ALTER DATABASE MyDatabase 
add file 
    (
    name = NewFile 
    ,filename = 'C:\temp\NewFile.ndf' 
    ,size = 100MB 
    ,maxsize = unlimited 
    ,filegrowth = 100MB 
) 
to filegroup NewGroup 

파일에 테이블을 이동하려면 그룹을 만들려면 파일 그룹에서 해당 테이블에 대해 클러스터형 인덱스를 만들어야합니다. 클러스터 된 (고유 키 또는 기본 키 등) 제약이있는 경우 먼저 삭제해야합니다. 다음은 이러한 테이블을 이동하는 하나 개의 방법 :

-- Set up sample table 
CREATE TABLE MyTable 
(
    Data varchar(100) not null 
    constraint PK_MyTable 
    primary key clustered 
) 

-- Can't "move" primary key constraint to a new file group 
ALTER TABLE MyTable 
drop constraint PK_MyTable 

-- This will move the data in the table to the new file group 
CREATE clustered index Move_MyTable 
on MyTable (Data) 
on NewGroup 

-- Still in the new file group, just no index 
DROP INDEX MyTable.Move_MyTable 

-- Recreate the primary key, keeping it on the new file group 
ALTER TABLE MyTable 
add constraint PK_MyTable 
    primary key clustered (Data) 
    on NewGroup 

그것은 너무 먼저 데이터베이스의 사본에 모든 것을 테스트해야, 조금 까다로운입니다!

관련 문제