创建数据库,添加文件组

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'
posted @ 2017-10-31 16:59  *雪狐*  阅读(2952)  评论(0编辑  收藏  举报