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 2014 に含まれていたSQL Server Native Clientのバージョンを使用してコンパイルされた場合、varbinary(max)
動作は SQL Server 2005 と互換性があります。 返されるデータの最大サイズが 2 GB に制限されます。 戻り値が 2 GB より大きい場合は切り捨てが行われ、"文字列データの右側が切り捨てられました" という警告が返されます。
データ型の互換性が 80 に設定されている場合は、クライアントの動作で下位クライアントとの互換性が維持されます。
SQLOLEDB またはSQL Server Native Clientの前にリリースされた他のプロバイダーを使用するクライアントの場合は、varbinary(max)
イメージにマップされます。