如何在MS SQL 2008中创建文件表?

时间:2015-05-28 19:14:18

标签: sql sql-server sql-server-2008 blob

我需要创建一个包含带文件或文件路径的单元格的表格,例如,它将用于用户下载pdf的文件。

如果有可能,我会很感激一个实际的例子。

我正在使用MS SQL 2008,VB / ASP.NET

感谢。

2 个答案:

答案 0 :(得分:3)

嗯,您有几个选项,具体取决于文件的大小。您可以通过常规表结构(作为BLOB数据)将数据存储在数据库本身中:

CREATE TABLE dbo.FileStorage
(
    FileName VARCHAR(255) NOT NULL,
    FileType VARCHAR(100) NOT NULL,
    FileCOntents VARBINARY(MAX) NOT NULL
)

另一种选择是按照你的说法存储路径:

CREATE TABLE dbo.FileStorage
(
    FileName VARCHAR(255) NOT NULL,
    FileType VARCHAR(100) NOT NULL
)

最后,使用SQL Server 2008 +中的FileStram功能:

CREATE TABLE dbo.FileStorage
(
    FileName VARCHAR(255) NOT NULL,
    FileType VARCHAR(100) NOT NULL,
    FileCOntents VARBINARY(MAX) FILESTREAM NOT NULL
)

涉及更多设置,但使用.NET文件流支持它,因此从开发角度来看它非常好。这是一个描述更多的链接: https://www.simple-talk.com/sql/learn-sql-server/an-introduction-to-sql-server-filestream/

此外,更多关于何时使用文件流: https://msdn.microsoft.com/en-us/library/hh461480.aspx

答案 1 :(得分:0)

您可以将PDF作为BLOB存储在SQL Server数据库中,但更好的方法是将文件路径存储为字符串。

CREATE TABLE MyFIleInfo(
ID int NOT NULL,
FilePath nvarchar(MAX) NOT NULL
)

在过去几年中,我正在使用Hyland Software OnBase产品(数字成像解决方案),这正是他们存储扫描和其他上传文档的方式。产品非常快,效果很好