Поддержка FILESTREAM
Компонент FILESTREAM предоставляет способ хранения и доступа к большим двоичным значениям либо с помощью SQL Server, либо путем непосредственного доступа к файловой системе Windows. Большим двоичным значением считается значение с размером больше 2 гигабайт (ГБ). Дополнительные сведения о поддержке усовершенствованного компонента FILESTREAM см. в статье FILESTREAM (SQL Server).
После открытия подключения к базе данных параметр @@TEXTSIZE
устанавливается в значение -1 («неограниченный») по умолчанию.
Предусмотрена также возможность получения доступа и обновления столбцов FILESTREAM с помощью API файловой системы Windows.
Дополнительные сведения см. в следующих разделах:
Запрос столбцов FILESTREAM
Наборы строк схемы в OLE DB не сообщают, является ли столбец столбцом FILESTREAM. Для создания столбца FILESTREAM невозможно использовать интерфейс ITableDefinition в OLE DB.
Функции каталога, такие как SQLColumns в ODBC, не сообщают, является ли столбец столбцом FILESTREAM.
Чтобы создать столбцы FILESTREAM или определить, какие существующие столбцы являются столбцами FILESTREAM, можно использовать is_filestream
столбец представления каталога sys.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');
Совместимость на низком уровне
Если клиент скомпилирован с использованием версии SQL Server Native Client, которая была включена в SQL Server 2014, varbinary(max)
поведение будет совместимо с SQL Server 2005. Это означает, что максимальный размер возвращаемых данных будет ограничен 2 ГБ. Для результирующих значений больше 2 ГБ произойдет усечение, и будет возвращено сообщение "Усечение строковых данных справа".
Если уровень совместимости типов данных установлен равным «80», то поведение клиента будет согласовано с поведением клиента низкого уровня.
Для клиентов, использующих SQLOLEDB или других поставщиков, которые были выпущены до SQL Server Native Client, varbinary(max)
будут сопоставлены с образом.