FILESTREAM 支持

FILESTREAM 提供了一种通过 SQL Server 或通过直接访问 Windows 文件系统来存储和访问大型二进制值的方法。 较大的二进制值是大于 2 GB 的值(GB)。 有关增强的 FILESTREAM 支持的详细信息,请参阅 FILESTREAM (SQL Server)。

打开数据库连接时, @@TEXTSIZE 默认情况下将设置为 -1(“无限制”),。

还可以使用 Windows 文件系统 API 访问和更新 FILESTREAM 列。

有关详细信息,请参阅以下主题:

查询 FILESTREAM 列

OLE DB 中的架构行集不会报告列是否为 FILESTREAM 列。 OLE DB 中的 ITableDefinition 不能用于创建 FILESTREAM 列。

ODBC 中的 SQLColumns 等目录函数不会报告列是否为 FILESTREAM 列。

若要创建 FILESTREAM 列或检测哪些现有列是 FILESTREAM 列,可以使用 is_filestreamsys.columns 目录视图的列。

示例如下:

-- Create a table with a FILESTREAM column.  
CREATE TABLE Bob_01 (GuidCol1 uniqueidentifier ROWGUIDCOL NOT NULL UNIQUE DEFAULT NEWID(), IntCol2 int, varbinaryCol3 varbinary(max) FILESTREAM);  
  
-- Find FILESTREAM columns.  
SELECT name FROM sys.columns WHERE is_filestream=1;  
  
-- Determine whether a column is a FILESTREAM column.  
SELECT is_filestream FROM sys.columns WHERE name = 'varbinaryCol3' AND object_id IN (SELECT object_id FROM sys.tables WHERE name='Bob_01');  

Down-Level 兼容性

如果客户端是使用 SQL Server 2014 附带的 SQL Server Native Client 版本编译的, varbinary(max) 则行为将与 SQL Server 2005 兼容。 也就是说,返回的数据的最大大小将限制为 2 GB。 对于大于 2 GB 的结果值,将发生截断,并返回“字符串数据右截断”警告。

当数据类型兼容性设置为 80 时,客户端行为将与下层客户端行为一致。

对于使用 SQLOLEDB 或 SQL Server Native Client 之前发布的其他提供程序的客户端, varbinary(max) 将映射到映像。

另请参阅

SQL Server Native Client 功能