Prise en charge de FILESTREAM

S’applique à :SQL Server

Important

SQL Server Native Client (souvent abrégé en SNAC) a été supprimé dans SQL Server 2022 (16.x) et SQL Server Management Studio 19 (SSMS). SQL Server Native Client (SQLNCLI ou SQLNCLI11) et le fournisseur Microsoft OLE DB pour SQL Server (SQLOLEDB) hérité ne sont pas recommandés dans les nouveaux développements. Utilisez à la place le nouveau Microsoft OLE DB Driver (MSOLEDBSQL) pour SQL Server ou le Microsoft ODBC Driver for SQL Server le plus récent. Pour SQLNCLI fourni en tant que composant du moteur de base de données SQL Server (versions 2012 à 2019), consultez cette exception de cycle de vie de support.

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 FILESTREAM (SQL Server).

Lorsqu’une connexion de base de données est ouverte, @@TEXTSIZE est défini avec la valeur -1 (« illimité ») par défaut.

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, voir les rubriques suivantes :

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é de bas niveau

Si votre client a été compilé à l’aide de la version de SQL Server Native Client incluse avec SQL Server 2005 (9.x) et que l’application se connecte à une version plus récente de SQL Server, le comportement varbinary(max) est compatible avec SQL Server 2005 (9.x). 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 (9.x) de SQL Server Native Client, varbinary(max) est mappé à l’image.

Voir aussi

Fonctionnalités de SQL Server Native Client