在SQL SERVER 2008中创建带FILESTREAM的数据库。
语句如下:
- ---注意事项----
- ---1、不能为FILESTREAM数据文件指定SIZE、MAXSIZE或FILEGROWTH属性;FILENAME属性中指定的值(即文件路径中的最后一个目录必须不存在,除此之外的目录必须存在)
- ---2、在使用FILESTREAM前需要开启FILESTREAM,具体参见:http://msdn.microsoft.com/zh-cn/library/cc645923(v=SQL.100).aspx
- ---3、请确认sqlserver数据库引擎的启动账户是否有权限读取C:\Sample这个目录,sqlserver在访问外部资源时,需要启动账户拥有相应的权限。
- --- 如果是内置账户, 建议选择Local System或者Local Service
- --------------------------------------------------------------------------------
- ---强烈建议把FILESTREAM数据与其他数据分开,存放在一个独立的数据库中,数据库镜像不能被用于包含文件流数据的数据库。数据库快照不能包含文件流文件组,因而,文件流数据不可用。在快照中使用slect请求一个文件流列会出错。
-
- IF EXISTS(SELECT * FROM sysdatabases WHERE name=N'SampleData')
- DROP DATABASE SampleData
- ---IF DB_ID(N'SampleData') IS NOT NULL
- --- DROP DATABASE SampleData
- CREATE DATABASE SampleData ON PRIMARY
- (NAME=N'SampleData', FILENAME=N'C:\Sample\SampleData.MDF',SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%),
- FILEGROUP FG1 DEFAULT
- (NAME=N'SampleData_01',FILENAME=N'C:\Sample\SampleData_01.ndf',SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%),
- (NAME=N'SampleData_02',FILENAME=N'C:\Sample\SampleData_02.ndf',SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%),
- FILEGROUP FG2 CONTAINS FILESTREAM
- (NAME=N'SampleData_f1',FILENAME=N'C:\Sample\Document')
- LOG ON
- (NAME=N'SampleData_Log',FILENAME=N'C:\Sample\SampleData_Log.ldf',SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%)
- COLLATE Chinese_PRC_CI_AS
- GO
-
在现有的数据库中增加文件:
- ---以下两条语句都是在现有数据库中增加文件,区别是如果没有指定文件组,则自动将文件加入到PRIMARY文件组中
- ALTER DATABASE SampleData
- ADD FILE (NAME=N'SampleData_03',FILENAME=N'C:\Sample\SampleData_03.ndf',Size=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%)
- ---或者
- ---ALTER DATABASE SampleData
- --- ADD FILE (NAME=N'SampleData_03',FILENAME=N'C:\Sample\SampleData_03.ndf',Size=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%) TO FILEGROUP FG1
在现有的数据库中增加文件组:
- ---以下两条语句是在现有数据库中增加文件组,并在新增加的文件组中增加新文件
- ALTER DATABASE SampleData
- Add FILEGROUP FG3
- ALTER DATABASE SampleData
- Add FILE (NAME=N'SampleData_04',FILENAME=N'C:\Sample\SampleData_04.ndf',SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%) TO FILEGROUP FG3
- ---以下语句是在现有数据库中增加FILESTREAM类型文件组,并在新增加的文件组中增加新文件
- --- ALTER DATABASE SampleData
- --- ADD FILEGROUP FG5 CONTAINS FILESTREAM
- --- ALTER DATABASE SampleData
- --- ADD FILE (NAME=N'SampleData_f2',FILENAME=N'C:\Sample\Photo') TO FILEGROUP FG5
将现有数据库中的文件或文件组删除
- ----从现有数据库中删除文件
- ALTER DATABASE SampleData
- REMOVE FILE SampleData_03
- ----从现有数据库中删除一个文件组
- ----首先必须从文件组中删除文件,然后才能删除文件组
- ALTER DATABASE SampleData
- REMOVE FILE SampleData_04
- ALTER DATABASE SampleData
- REMOVE FILEGROUP FG3
修改现有数据库中的文件与文件组属性
- ----更改数据库中文件的大小
- ALTER DATABASE SampleData
- MODIFY FILE (NAME=N'SampleData_03',SIZE=20MB)
- ----更改数据库中文件的逻辑名
- ALTER DATABASE SampleData
- MODIFY FILE (NAME=N'SampleData_03',NEWNAME=N'SampleData_13')
- ----更改数据库中文件的路径
- ----必须先将该文件实际移至新目录中,然后运行此示例。然后,停止和启动 SQL Server 的实例,或使 SampleData 数据库 OFFLINE 再 ONLINE,以实施更改。
- ALTER DATABASE SampleData
- MODIFY FILE (NAME=N'SampleData_03',FILENAME=N'C:\SampleData_03.ndf')
- ----更改数据库中文件组的只读属性(READ_ONLY/READ_WRITE、DEFAULT
- ALTER DATABASE SampleData
- MODIFY FILEGROUP FG3 READ_WRITE
- ----将默认数据库文件组改为FG3
- ALTER DATABASE SampleData
- MODIFY FILEGROUP FG3 DEFAULT
- ----将主文件组设置为默认文件组
- ALTER DATABASE SampleData
- MODIFY FILEGROUP [PRIMARY] DEFAULT
- ----修改文件组的名称
- ALTER DATABASE SampleData
- MODIFY FILEGROUP FG3 (NAME=N'FG13')
创建数据库快照
- CREATE DATABASE SampleDataSnapshot ON
- (NAME=N'SampleData',FILENAME=N'C:\Sample\SampleData.ss'),
- (NAME=N'SampleData_01',FILENAME=N'C:\Sample\SampleData_01.ss'),
- (NAME=N'SampleData_02',FILENAME=N'C:\Sample\SampleData_02.ss'),
- (NAME=N'SampleData_03',FILENAME=N'C:\Sample\SampleData_03.ss'),
- (NAME=N'SampleData_04',FILENAME=N'C:\Sample\SampleData_04.ss')
- AS SNAPSHOT OF SampleData