FILESTREAM のサポート

適用対象:SQL Server

重要

SQL Server Native Client (SNAC と略されることがよくあります) は、SQL Server 2022 (16.x) と SQL Server Management Studio 19 (SSMS) から削除されました。 SQL Server Native Client (SQLNCLI または SQLNCLI11) とレガシ Microsoft OLE DB Provider for SQL Server (SQLOLEDB) は、新しいアプリケーション開発には推奨されません。 今後、新しい Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server または最新の Microsoft ODBC Driver for SQL Server に切り替えてください。 SQL Server データベース エンジン (バージョン 2012 から 2019) のコンポーネントとして付属する SQLNCLI については、このサポート ライフサイクルの例外を参照してください。

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 (9.x) に含まれていたSQL Server Native Clientのバージョンを使用してコンパイルされ、アプリケーションが新しいバージョンのSQL Serverに接続している場合、varbinary(max) 動作は SQL Server 2005 (9.x) と互換性があります。 返されるデータの最大サイズが 2 GB に制限されます。 戻り値が 2 GB より大きい場合は切り捨てが行われ、"文字列データの右側が切り捨てられました" という警告が返されます。

データ型の互換性が 80 に設定されている場合は、クライアントの動作で下位クライアントとの互換性が維持されます。

SQL Server 2005 (9.x) バージョンのSQL Server Native Clientより前にリリースされた SQLOLEDB またはその他のプロバイダーを使用するクライアントの場合、varbinary(max) はイメージにマップされます。

参照

SQL Server Native Client の機能