FILESTREAM 支援

FILESTREAM 提供透過 SQL Server 或直接存取 Windows 檔案系統來儲存及存取大型二進位值的方式。 大型二進位值是大於 2 GB 的值。 如需有關增強型 FILESTREAM 支援的詳細資訊,請參閱<FILESTREAM (SQL Server)>。

當開啟資料庫連接時,@@TEXTSIZE 預設會設定為 -1 (無限制)。

也可以使用 Windows 檔案系統 API 來存取及更新 FILESTREAM 資料行。

如需詳細資訊,請參閱下列主題:

查詢是否有 FILESTREAM 資料行

OLE DB 中的結構描述資料列集將不會報告某個資料行是否為 FILESTREAM 資料行。 OLE DB 中的 ITableDefinition 不能用來建立 FILESTREAM 資料行。

目錄函數 (如 ODBC 中的 SQLColumns) 將不會報告某個資料行是否為 FILESTREAM 資料行。

若要建立 FILESTREAM 資料行或是偵測哪些現有的資料行為 FILESTREAM 資料行,您可以使用 sys.columns 目錄檢視的 is_filestream 資料行。

以下是一個範例:

-- 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');

下層相容性

如果您的用戶端是使用 SQL Server 2005 所隨附的 SQL Server Native Client 版本所編譯,而且應用程式連接到 SQL Server 2012,varbinary(max) 行為將會與 SQL Server 2005 相容。 也就是說,傳回之資料的大小最大值受限於 2 GB。 如果結果值大於 2 GB,將會發生截斷,而且將會傳回「字串資料右邊截斷」警告。

當資料類型相容性設定為 80 時,用戶端行為將會與下層用戶端行為一致。

如果是使用 SQLOLEDB 的用戶端或是在 SQL Server 2005 版的 SQL Server Native Client 之前發行的其他提供者,varbinary(max) 將會對應到 image。

請參閱

其他資源

SQL Server Native Client 功能