在SQL SERVER 2008中创建带FILESTREAM的数据库。

语句如下:

 

  1. ---注意事项----  
  2. ---1、不能为FILESTREAM数据文件指定SIZE、MAXSIZE或FILEGROWTH属性;FILENAME属性中指定的值(即文件路径中的最后一个目录必须不存在,除此之外的目录必须存在)  
  3. ---2、在使用FILESTREAM前需要开启FILESTREAM,具体参见:http://msdn.microsoft.com/zh-cn/library/cc645923(v=SQL.100).aspx  
  4. ---3、请确认sqlserver数据库引擎的启动账户是否有权限读取C:\Sample这个目录,sqlserver在访问外部资源时,需要启动账户拥有相应的权限。  
  5. ---   如果是内置账户, 建议选择Local System或者Local Service  
  6. --------------------------------------------------------------------------------  
  7. ---强烈建议把FILESTREAM数据与其他数据分开,存放在一个独立的数据库中,数据库镜像不能被用于包含文件流数据的数据库。数据库快照不能包含文件流文件组,因而,文件流数据不可用。在快照中使用slect请求一个文件流列会出错。  
  8.  
  9. IF EXISTS(SELECT * FROM sysdatabases WHERE name=N'SampleData')   
  10.    DROP DATABASE SampleData   
  11. ---IF DB_ID(N'SampleData') IS NOT NULL  
  12. ---   DROP DATABASE SampleData  
  13. CREATE DATABASE SampleData ON PRIMARY 
  14.   (NAME=N'SampleData', FILENAME=N'C:\Sample\SampleData.MDF',SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%),  
  15.   FILEGROUP FG1 DEFAULT 
  16.   (NAME=N'SampleData_01',FILENAME=N'C:\Sample\SampleData_01.ndf',SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%),  
  17.   (NAME=N'SampleData_02',FILENAME=N'C:\Sample\SampleData_02.ndf',SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%),  
  18.   FILEGROUP FG2 CONTAINS FILESTREAM  
  19.   (NAME=N'SampleData_f1',FILENAME=N'C:\Sample\Document')  
  20.   LOG ON 
  21.   (NAME=N'SampleData_Log',FILENAME=N'C:\Sample\SampleData_Log.ldf',SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%)  
  22.   COLLATE Chinese_PRC_CI_AS  
  23.   GO  
  24.    

 

在现有的数据库中增加文件:

 

  1. ---以下两条语句都是在现有数据库中增加文件,区别是如果没有指定文件组,则自动将文件加入到PRIMARY文件组中  
  2. ALTER DATABASE SampleData   
  3.  ADD FILE (NAME=N'SampleData_03',FILENAME=N'C:\Sample\SampleData_03.ndf',Size=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%)  
  4. ---或者  
  5. ---ALTER DATABASE SampleData   
  6. --- ADD FILE (NAME=N'SampleData_03',FILENAME=N'C:\Sample\SampleData_03.ndf',Size=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%) TO FILEGROUP FG1  

在现有的数据库中增加文件组:

 

  1.   ---以下两条语句是在现有数据库中增加文件组,并在新增加的文件组中增加新文件  
  2.   ALTER DATABASE SampleData   
  3.    Add FILEGROUP FG3  
  4.   ALTER DATABASE SampleData  
  5.    Add FILE (NAME=N'SampleData_04',FILENAME=N'C:\Sample\SampleData_04.ndf',SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%) TO  FILEGROUP FG3  
  6. ---以下语句是在现有数据库中增加FILESTREAM类型文件组,并在新增加的文件组中增加新文件  
  7. ---  ALTER DATABASE SampleData  
  8. ---   ADD FILEGROUP FG5 CONTAINS FILESTREAM  
  9. ---  ALTER DATABASE SampleData   
  10. ---   ADD FILE (NAME=N'SampleData_f2',FILENAME=N'C:\Sample\Photo') TO FILEGROUP FG5 

 将现有数据库中的文件或文件组删除

 

  1. ----从现有数据库中删除文件  
  2. ALTER DATABASE SampleData  
  3.    REMOVE FILE SampleData_03  
  4. ----从现有数据库中删除一个文件组  
  5. ----首先必须从文件组中删除文件,然后才能删除文件组  
  6. ALTER DATABASE SampleData  
  7.    REMOVE FILE SampleData_04     
  8. ALTER DATABASE SampleData  
  9.    REMOVE FILEGROUP FG3    

修改现有数据库中的文件与文件组属性

 

  1. ----更改数据库中文件的大小  
  2. ALTER DATABASE SampleData  
  3.    MODIFY FILE (NAME=N'SampleData_03',SIZE=20MB)  
  4. ----更改数据库中文件的逻辑名  
  5. ALTER DATABASE SampleData  
  6.    MODIFY FILE (NAME=N'SampleData_03',NEWNAME=N'SampleData_13')    
  7. ----更改数据库中文件的路径  
  8. ----必须先将该文件实际移至新目录中,然后运行此示例。然后,停止和启动 SQL Server 的实例,或使 SampleData 数据库 OFFLINE 再 ONLINE,以实施更改。   
  9. ALTER DATABASE SampleData  
  10.    MODIFY FILE (NAME=N'SampleData_03',FILENAME=N'C:\SampleData_03.ndf')  
  11. ----更改数据库中文件组的只读属性(READ_ONLY/READ_WRITE、DEFAULT  
  12. ALTER DATABASE SampleData  
  13.    MODIFY FILEGROUP FG3 READ_WRITE  
  14. ----将默认数据库文件组改为FG3  
  15. ALTER DATABASE SampleData  
  16.    MODIFY FILEGROUP FG3 DEFAULT 
  17. ----将主文件组设置为默认文件组  
  18. ALTER DATABASE SampleData  
  19.    MODIFY FILEGROUP [PRIMARYDEFAULT 
  20. ----修改文件组的名称  
  21. ALTER DATABASE SampleData  
  22.    MODIFY FILEGROUP FG3 (NAME=N'FG13')  

 创建数据库快照

 

  1. CREATE DATABASE SampleDataSnapshot ON 
  2.     (NAME=N'SampleData',FILENAME=N'C:\Sample\SampleData.ss'),  
  3.     (NAME=N'SampleData_01',FILENAME=N'C:\Sample\SampleData_01.ss'),  
  4.     (NAME=N'SampleData_02',FILENAME=N'C:\Sample\SampleData_02.ss'),  
  5.     (NAME=N'SampleData_03',FILENAME=N'C:\Sample\SampleData_03.ss'),  
  6.     (NAME=N'SampleData_04',FILENAME=N'C:\Sample\SampleData_04.ss')  
  7.     AS SNAPSHOT OF SampleData