Skip to content

Latest commit

 

History

History
64 lines (43 loc) · 3.82 KB

filestream-support.md

File metadata and controls

64 lines (43 loc) · 3.82 KB
title description author ms.author ms.date ms.service ms.subservice ms.topic helpviewer_keywords
FILESTREAM Support
FILESTREAM Support
markingmyname
maghan
03/17/2017
sql
native-client
reference
FILESTREAM [SQL Server], SQL Server Native Client
SQL Server Native Client [FILESTREAM support]

FILESTREAM Support

[!INCLUDE SQL Server]

Important

[!INCLUDEsnac-removed-oledb-and-odbc]

FILESTREAM provides a way to store and access large binary values, either through [!INCLUDEssNoVersion] or by direct access to the Windows file system. A large binary value is a value larger than 2 gigabytes (GB). For more information about enhanced FILESTREAM support, see FILESTREAM (SQL Server).

When a database connection is opened, @@TEXTSIZE will be set to -1 ("unlimited"), by default.

It is also possible to access and update FILESTREAM columns using Windows file system APIs.

For more information, see the following topics:

Querying for FILESTREAM Columns

Schema rowsets in OLE DB will not report whether a column is a FILESTREAM column. ITableDefinition in OLE DB cannot be used to create a FILESTREAM column.

Catalog functions such as SQLColumns in ODBC will not report whether a column is a FILESTREAM column.

To create FILESTREAM columns or to detect which existing columns are FILESTREAM columns, you can use the is_filestream column of the sys.columns catalog view.

The following is an example:

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

Down-Level Compatibility

If your client was compiled using the version of [!INCLUDEssNoVersion] Native Client that was included with [!INCLUDEssVersion2005], and the application connects to a newer version of [!INCLUDE ssnoversion-md], varbinary(max) behavior will be compatible with [!INCLUDEssVersion2005]. That is, the maximum size of returned data will be limited to 2 GB. For result values larger that 2 GB, truncation will occur and a "string data right truncation" warning will be returned.

When data-type compatibility is set to 80, client behavior will be consistent with down-level client behavior.

For clients that use SQLOLEDB or other providers that were released before the [!INCLUDEssVersion2005] version of [!INCLUDEssNoVersion] Native Client, varbinary(max) will be mapped to image.

See Also

SQL Server Native Client Features