用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. 添加示例文档:

```sql
DECLARE @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中文档存取的技术介绍,希望可以给读者提供一定的帮助。
阅读剩余
THE END