用SQLServer存取文档
随着时期的进步和技术的发展,数据对现代企业来讲愈来愈重要,因此各种数据存储技术的利用也愈来愈多。传统的文档存储方式有以文本文件、PDF、MSWord文档等文件格式寄存,但这些文件存储方式没法满足高 demanding的现代数据处理要求,如数据的检索与索引,这是SQL Server中的文档存取在管理数据方面的使用价值。
sqlserver对文档的存取采取“File Streaming Data”的技术,通过为存储进程指定文档寄存位置,将文档以二进制表单存取,文档字段名成为 FileName,文档内容作为 varbinary(max)字段 encoding,如果是图片、声音、视频等文件则直接在Sql Server中以blob情势存储。
SQL Server把文档内容放入binary字段,会对内容及文件大小有一定限制,目前最大限制是2,147,483,647kb(2GB)。
在数据库设计中,我们需要设计一个表来存储文档,然后在存储进程中将文档以二进制情势插入到该表中。具体的代码以下:
1. 建立存储文档的数据库表:
“`sql
CREATE TABLE [dbo].[Files](
[ID] [ int] IDENTITY(1,1) NOT NULL,
[FileName] [varchar](500) NOT NULL,
[BinaryData] [varbinary](max) NOT NULL,
[FileType] [varchar](50) NOT NULL
)
2. 添加示例文档:
```sqlDECLARE @Path VARCHAR( MAX);
SET @Path=”D:\\sample.txt”;
INSERT INTO [Files] ([FileName], [BinaryData], [FileType])
VALUES (\'sample.txt\',
(SELECT * FROM OPENROWSET (BULK @Path , SINGLE_BLOB)AS FileContent), \'.txt\');
3. 读取文档:
“`sql
DECLARE @Data VARBINARY(MAX);
DECLARE @Filename NVARCHAR(500);
DECLARE @Path NVARCHAR(500);
SELECT @Data = BinaryData, @Filename = FileName
FROM [dbo].[Files] WHERE [ID] = 1 ;
SET @Path = ‘D:\\temp\\’ +@Filename
SELECT * FROM OPENROWSET(BULK @Path, SINGLE_BLOB) AS x ;
以上代码就是将文档存储到SQL Server中,和读取文档的方法。 但是SQL Server文档存储技术也有一定的局限性,当存储体积超过2G时就没法承载,而且各种数据库存取也会耗费很多时间,而一致性与安全性也是待改良的部份。
另外,存储进程中也能够增加加密技术来保护文档内容,和文档存取的权限管理等,以确保文档安全传输。
总之,我们可以看出,通过使用SQL Server文档存取技术,可以将大量文档存储到数据库中,并进行安全传输。虽然存在一些局限性,但是对管理数据来讲或者有一定价值的。
以上就是SQL Server中文档存取的技术介绍,希望可以给读者提供一定的帮助。
<用SQLServer存取文档>来自网络。本站不参与任何交易,也非中介,仅记录个人感兴趣的免费网站建设技能、主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。