[SQL Server] 文件和文件组

 

--(数据库级)文件组的系统视图为 sys.filegroups

--(数据库级)文件的系统视图为   sys.database_files

 

-- 用户数据库的对象定义,是存在主数据文件当中的(主数据文件和主日志文件不能删除),如果你新建一个文件组,(在还没有给它建任何数据文件的情况下),仍可指定建表及索引,或分区表在该文件组上。

ALTER DATABASE MyDB ADD FILEGROUP [MyDB_FileGroup_01];

create table t_test1(col1 int) on  [MyDB_FileGroup_01];

create index ix_test1 on t_test1(col1);

 

ALTER DATABASE MyDB ADD FILEGROUP [MyDB_FileGroup_02];

create partition function pf_test2_range(int) as range left for values (100)

create partition scheme ps_test2_range as partition pf_test2_range to (MyDB_FileGroup_01,MyDB_FileGroup_02)

create table t_test2(col1 int, primary key CLUSTERED (col1) ) on pf_test2_range (col1);

 

 

-- 但你必须先给这个文件组建立数据文件,不能给这个表中插入数据

ALTER DATABASE MyDB ADD FILE ( NAME = N'MyDB_File_01',

FILENAME = N'E:/Program Files/MSSQL/Data/MyDB_File_01.ndf' , SIZE = 20MB , FILEGROWTH = 10% )

 TO FILEGROUP [MyDB_FileGroup_01];

insert into t_test1(col1) values(1);

 

ALTER DATABASE MyDB ADD FILE ( NAME = N'MyDB_File_02',

FILENAME = N'E:/Program Files/MSSQL/Data/MyDB_File_02.ndf' , SIZE = 20MB , FILEGROWTH = 10% )

 TO FILEGROUP [MyDB_FileGroup_02];

insert into t_test2(col1) values(1);

 

 

--相反,对于删除文件或文件组,需先truncatedelete, 才能删除数据文件。必须删除引用文件组的对象,和文件组中的文件,才能删除文件组。

truncate table t_test2

ALTER DATABASE MyDB REMOVE FILE MyDB_File_02;

 

truncate table t_test1;

ALTER DATABASE MyDB REMOVE FILE MyDB_File_01;

 

drop table t_test2;

drop partition scheme ps_test2_range;

ALTER DATABASE MyDB REMOVE FILEGROUP MyDB_FileGROUP_02;

 

drop table t_test1;

ALTER DATABASE MyDB REMOVE FILEGROUP MyDB_FileGROUP_01;

 

--(实例级)文件组的系统视图为   sys.master_files

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值