use master
go
ifexists(select *from sys.databases where database_id =DB_ID('Test'))
drop database Test
--1.创建数据库
create database Test on(name =N'Test',filename=N'e:\test\test.mdf',size =3MB,filegrowth =1MB)log on(name =N'Test_log',filename =N'e:\test\test_log.ldf',size =1MB,filegrowth =1MB)
go
use Test
go
--2.创建文件组
alter database Test
add filegroup fg_test_id_01
alter database Test
add filegroup fg_test_id_02
--3.创建文件
alter database Test
add file(name =N'f_Test_file_01_data',filename =N'e:\test\f_Test_file_01_data.ndf',size =1MB,filegrowth =1MB)to filegroup fg_test_id_01
alter database Test
add file(name =N'f_Test_file_02_data',filename =N'e:\test\f_Test_file_02_data.ndf',size =1MB,filegrowth =1MB)to filegroup fg_test_id_02
--4.创建表
create table aa(id int,cname varchar(1000)) on fg_test_id_01
go
--5.插入数据
insert into aa select 1,replicate('s',1000)
go 500--6.查询数据
select *from aa
--7.创建聚集索引在 fg_test_id_02 --将表 从原来的文件组挪到 新的文件组
create clustered index pk_id on aa(id)with(online = on) on fg_test_id_02
go
--8.查看一下文件组的逻辑文件名
exec sys.sp_helpdb @dbname='Test'--9.收缩一下fg_test_id_01文件组文件
dbcc shrinkfile(f_Test_file_01_data,1)--10.可以删除聚集索引,也可以不删除
drop index pk_id on aa
--11.删除数据库
use master
go
drop database Test
-----------------------------------------------------------------------------------------------------------------------------------------------------------------创建文件组及文件
use Test
go
alter PROCEDURE[dbo].[pro_CreateNextFileGroup]
@Database Varchar(50),
@Date Datetime,
@path varchar(100)AS
begin
Declare @Sql Varchar(8000),@NextMonth Varchar(6)
Set @NextMonth=Convert(Varchar(6),Dateadd(Month,1,@Date),112)--创建文件组
Set @Sql='Use '+@Database+'
alter database '+@Database+'
add filegroup FG_'+@Database+'_yyyyMM'
Set @Sql=Replace(@Sql,'yyyyMM',@NextMonth)Exec(@Sql)--创建文件
Set @Sql='Use '+@Database+'
alter database '+@Database+'
add file(name =N''F_'+@Database+'_yyyyMM_data'',filename =N'''+@path+'\F_'+@Database+'_yyyyMM_data.ndf'',size =1MB,filegrowth =1MB)to filegroup FG_'+@Database+'_yyyyMM'
Set @Sql=Replace(@Sql,'yyyyMM',@NextMonth)Exec(@Sql)
end
--执行过程
use Test
go
exec [pro_CreateNextFileGroup]'Test','2016-05-01','e:\test'