共用方式為


FILESTREAM 支援

FILESTREAM 功能是在 SQL Server 2008 中導入,可提供一個方式來儲存及存取大型二進位值,也就是透過 SQL Server 或直接存取 Windows 檔案系統。大型二進位值是大於 2 GB 的值。如需有關增強型 FILESTREAM 支援的詳細資訊,請參閱<FILESTREAM 概觀>。

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

也可以使用 Windows 檔案系統 API 來存取及更新 FILESTREAM 資料行。如需詳細資訊,請參閱<FILESTREAM 概觀>。

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

如需有關示範這項功能之範例應用程式的資訊,請參閱<安裝 SQL Server 範例和範例資料庫的考量>。

查詢是否有 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,varbinary(max) 行為將會與 SQL Server 2005 相容。也就是說,傳回之資料的大小最大值受限於 2 GB。如果結果值大於 2 GB,將會發生截斷,而且將會傳回「字串資料右邊截斷」警告。

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

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