SQL Server FileStream详解


当前第2页 返回上一页

--Create filestreamgroup 
ALTER DATABASE [Archive]
ADD FILEGROUP [FileStreamGroup] CONTAINS FILESTREAM 
GO
--Create filestream and association with filestreamgroup above
ALTER DATABASE [Archive]
ADD FILE ( NAME = N'FileStream', FILENAME = N'D:\Company\Data\SQL Server\FileStream') TO FILEGROUP [FileStreamGroup]
GO

  创建测试表(注意:如果表包含FILESTREAM列,则每一行都必须具有唯一的行ID)

--Create table
CREATE TABLE Archive.dbo.Attachment (
  [ID] [UNIQUEIDENTIFIER] ROWGUIDCOL NOT NULL PRIMARY KEY,
  [FileName] NVARCHAR(100) NULL,
  [CreateUser] NVARCHAR(100) NULL,
  [CreateDatetime] DATETIME NULL,
  [Content] VARBINARY(MAX) FILESTREAM NULL 
)
FILESTREAM_ON [FileStreamGroup] 

  插入一些测试数据

 --Insert some records
INSERT INTO Attachment VALUES 
(NEWID(),'File Name 1','shg.cpan', GETDATE(),NULL),
(NEWID(),'File Name 1','shg.cpan', GETDATE(),CAST('' AS VARBINARY(MAX))),
(NEWID(),'File Name 1','shg.cpan', GETDATE(),CAST('This is a attachment, which contains all introduction for filestream' AS VARBINARY(MAX))) 

  从前台插入一些数据

using (SqlConnection conn = new SqlConnection("server=10.7.15.172;database=Archive;uid=sa;pwd=1234;Connect Timeout=180"))
{
  conn.Open();
  using (SqlCommand cmd = conn.CreateCommand())
  {
    string id = Guid.NewGuid().ToString();
    cmd.CommandText = "INSERT INTO Attachment VALUES('" + id + "','File Name 2','shg.cpan','" + DateTime.Now + "',@content)";
    SqlParameter param = new SqlParameter("@content", SqlDbType.VarBinary, 1000000000);
    param.Value = File.ReadAllBytes(@"D:\Folder\131 u_ex151207.log");
    cmd.Parameters.Add(param);
    cmd.ExecuteNonQuery();
  }
  conn.Close();
}

  检索数据 

SELECT DATALENGTH(CONTENT)/(1024.0 * 1024.0) AS MB,* FROM ATTACHMENT  

结果

 

  文件系统

  

   上面的文件都是上传的真实文件,只不过没有后缀,如果重命名加上后缀,即可读取,如最后一个是excel文件,加上.xls,即可用Excel软件打开此文件

三、注意事项

  请注意以下事项:

 •并不是所有的文件存储都适合使用FileStream,如果所存储的文件对象平均大于1MB考虑使用FileStream,否则对于较小的文件对象,以varbinary(max)BLOB存储在数据库中通常会提供更为优异的流性能;
 •FileStream可以使用在故障集群上(Failover Cluster),但此时FileStream文件组必须位于共享磁盘资源上;
 •FILESTREAM 与其他 SQL Server 功能的兼容性:https://msdn.microsoft.com/zh-cn/library/bb895334(v=sql.105).aspx

更多SQL内容来自木庄网络博客


标签:SQL

返回前面的内容

相关阅读 >>

mysql空间数据存储及函数

navicat怎么导入sql

系统整理sql中group by的用法与group by多个字段限制

sql窗口函数over用法实例整理

phpmyadmin是sql

数据库性能优化之sql语句优化

mysql常用查询命令操作大全

sqlserver分页的两种写法分别介绍

sql语句示例

如何将sql文件导入mysql

更多相关阅读请进入《sql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...