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

How to create a file table in MS SQL 2008?

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

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

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

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

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

好吧,您有几个选项,具体取决于文件的大小。您可以通过正常的 table 结构(作为 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 文件流,因此从开发的角度来看它非常好。这里有一个 link 描述更多: https://www.simple-talk.com/sql/learn-sql-server/an-introduction-to-sql-server-filestream/

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