Partager via


Prise en charge de FILESTREAM

SQL Server 2008 et SQL Server Native Client 10.0 prennent en charge la fonctionnalité FILESTREAM améliorée. La fonctionnalité FILESTREAM permet de stocker et d'accéder à de grandes valeurs binaires, soit par le biais de SQL Server, soit par accès direct au système de fichiers Windows. Une grande valeur binaire est une valeur supérieure à 2 gigaoctets (Go). Pour plus d'informations sur la prise en charge FILESTREAM améliorée, consultez Vue d'ensemble de FILESTREAM.

Lorsqu'une connexion de base de données est ouverte, la valeur -1 (« illimité ») est affectée par défaut à @@TEXTSIZE.

Il est également possible d'accéder et de mettre à jour des colonnes FILESTREAM à l'aide d'API de système de fichiers Windows. Pour plus d'informations, consultez Vue d'ensemble de FILESTREAM.

Pour plus d'informations, consultez les rubriques suivantes :

Pour plus d'informations sur les exemples d'applications qui illustrent cette fonctionnalité, consultez Considérations relatives à l'installation d'exemples de bases de données et d'exemples de code SQL Server.

Interrogation de colonnes FILESTREAM

Les ensembles de lignes de schéma dans OLE DB ne signalent pas si une colonne est une colonne FILESTREAM. ITableDefinition dans OLE DB ne peut pas être utilisé pour créer une colonne FILESTREAM.

Les fonctions de catalogue, telles que SQLColumns, dans ODBC ne signalent pas si une colonne est une colonne FILESTREAM.

Pour créer des colonnes FILESTREAM ou détecter les colonnes existantes qui sont des colonnes FILESTREAM, vous pouvez utiliser la colonne is_filestream de l'affichage catalogue sys.columns.

Par exemple :

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

Compatibilité descendante

Si votre client a été compilé à l'aide de la version de SQL Server Native Client fournie avec SQL Server 2005 et que l'application se connecte à SQL Server 2008, le comportement varbinary(max) est compatible avec SQL Server 2005. Autrement dit, la taille maximale des données retournées est limitée à 2 Go. Pour les valeurs de résultat supérieures à 2 Go, une troncation se produit et un avertissement « Troncation à droite de la chaîne de données » est retourné.

Lorsque la compatibilité de type de données est définie à 80, le comportement client est cohérent avec le comportement client de bas niveau.

Pour les clients qui utilisent SQLOLEDB ou d'autres fournisseurs publiés avant la version SQL Server 2005 de SQL Server Native Client, varbinary(max) est mappé à l'image.