use master
go
if exists(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'