Compatibilidad con FILESTREAM

La característica FILESTREAM, que se introdujo en SQL Server 2008, proporciona un modo de almacenar y obtener acceso a valores binarios grandes, ya sea a través de SQL Server o mediante acceso directo al sistema de archivos de Windows. Un valor binario grande es un valor superior a 2 gigabytes (GB). Para obtener más información acerca de la compatibilidad mejorada con FILESTREAM, vea Información general de FILESTREAM.

Cuando se abra una conexión de base de datos, @@TEXTSIZE se establecerá en -1 ("ilimitado") de forma predeterminada.

También es posible obtener acceso a columnas FILESTREAM y actualizarlas mediante las API del sistema de archivos de Windows. Para obtener más información, vea Información general de FILESTREAM.

Para obtener más información, vea los siguientes temas:

Para obtener información sobre las aplicaciones de ejemplo que muestran esta característica, vea Consideraciones para instalar ejemplos y bases de datos de ejemplo de SQL Server.

Consulta de columnas FILESTREAM

Los conjuntos de filas de esquema de OLE DB no notificarán si una columna es una columna FILESTREAM. La interfaz ITableDefinition de OLE DB no puede utilizarse para crear una columna FILESTREAM.

Las funciones de catálogo, como SQLColumns de ODBC, no notificarán si una columna es una columna FILESTREAM.

Para crear columnas FILESTREAM o detectar qué columnas existentes son columnas FILESTREAM, puede usar la columna is_filestream de la vista de catálogo sys.columns.

A continuación se muestra un ejemplo:

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

Compatibilidad con niveles inferiores

Si su cliente se compiló con la versión de SQL Server Native Client que se incluía con SQL Server 2005 y la aplicación se conecta a una versión posterior de SQL Server, el comportamiento de varbinary(max) será compatible con SQL Server 2005. Es decir, el tamaño máximo de los datos devueltos se limitará a 2 GB. Los resultados cuyo valor supere los 2 GB, se truncarán, y se devolverá una advertencia de tipo "datos de cadena truncados por la derecha".

Cuando la compatibilidad de tipo de datos se establezca en 80, el comportamiento del cliente será coherente con el comportamiento del cliente de nivel inferior.

En el caso de los clientes que utilicen SQLOLEDB u otros proveedores lanzados al mercado con anterioridad a la versión SQL Server 2005 de SQL Server Native Client, varbinary(max) se asignará a una imagen.