/*--功能说明
下面的代码是在SQL Server 2000上创建名为 MyDB 的数据库
该数据库包括1个主要数据文件、3个用户定义的文件组和1个日志文件
ALTER DATABASE语句将用户定义文件组指定为默认文件组。
之后,通过指默认的文件组来创建表,并且将图像数据和索引放到指定的文件组中。
最后,将文件组中的指定数据文件删除
--*/
--切换到 master 数据库
USE master -----------------------首先打开MASTER
GO
--A. 创建数据库 MyDB
CREATE DATABASE MyDB
ON PRIMARY --主文件组和主要数据文件 -----。MDF属于主文件组和主要数据文件,用户不能对他---------们进行更改
( NAME='MyDB_Primary', -------------------------------------------LOGIC FILENAME(USE REFERENCE)
FILENAME= 'c:/MyDB_Prm.mdf'), ------------------------PHYSICAL FILENAME
FILEGROUP MyDB_FG1 --用户定义文件组1 ----CREATE FILEGROUP
( NAME = 'MyDB_FG1_Dat1', -----------------------------可以自定义多个文件组(。NDF)
FILENAME = 'c:/MyDB_FG1_1.ndf'), --次要数据文件1
( NAME = 'MyDB_FG1_Dat2',
FILENAME = 'd:/MyDB_FG1_2.ndf'), --次要数据文件2
FILEGROUP MyDB_FG2 --用户定义文件组2
( NAME = 'MyDB_FG1_Dat',
FILENAME = 'e:/MyDB_FG2.ndf') --次要数据文件
LOG ON --日志文件 --------------------------------注:日志文件不属于任何文件组
( NAME='MyDB_log',
FILENAME ='d:/MyDB.ldf')
GO
--B. 修改默认数据文件组
ALTER DATABASE MyDB MODIFY FILEGROUP MyDB_FG1 DEFAULT-----把自定义的文件组改为默认文件组
GO
--切换到新建的数据库 MyDB
USE MyDB ----------------切换到自己新建数据库
--C. 在默认文件组MyDB_FG1创建表,并且指定图像数据保存在用户定义文件组MMyDB_FG2
CREATE TABLE MyTable ---------------------在上面的换为文件组上建表,不在主文件组上
( cola int PRIMARY KEY ,
colb char(8) ,
colc image )
TEXTIMAGE_ON MyDB_FG2 ------------------把图像数据(image)放到其它不同于其它的文件组中,不要和数据文件在同一个文件组中
--在用户定义文件组MyDB_FG2上创建索引
CREATE INDEX IX_MyTable ON MyTable(cola) ON MyDB_FG2
GO
-----------可以把一个文件组上的数据文件。NDF转移到其它的数据文件中(同一个文件组中),前提是在同一个文件组上有多个附加数据文件。NDF
--D. 将要删除数据文件MyDB_FG1_Dat1上的数据转移到其他数据文件中,并且清空数据文件MyDB_FG1_Dat1
DBCC SHRINKFILE(MyDB_FG1_Dat1,EMPTYFILE) ----dbcc shrinkfile(mydb_fg1_dat1,emptyfile)---
--删除数据文件MyDB_FG1_Dat1
ALTER DATABASE MyDB REMOVE FILE MyDB_FG1_Dat1 ------------DELETE DATEFILE