Supporto FILESTREAM
Si applica a:SQL Server
Importante
SQL Server Native Client (spesso abbreviato SNAC) è stato rimosso da SQL Server 2022 (16.x) e SQL Server Management Studio 19 (SSMS). SQL Server Native Client (SQLNCLI o SQLNCLI11) e il provider Microsoft OLE DB legacy per SQL Server (SQLOLEDB) non sono consigliati per lo sviluppo di nuove applicazioni. Passare al nuovo Microsoft OLE DB Driver (MSOLEDBSQL) per SQL Server o alla versione più recente di Microsoft ODBC Driver per SQL Server . Per SQLNCLI fornito come componente del motore di database di SQL Server (versioni da 2012 a 2019), vedere questa eccezione relativa al ciclo di vita del supporto.
FILESTREAM consente di archiviare e accedere a valori binari di grandi dimensioni mediante SQL Server o accesso diretto al file system di Windows. Un valore binario di grandi dimensioni è un valore superiore a 2 gigabyte (GB). Per altre informazioni sul supporto FILESTREAM avanzato, vedere FILESTREAM (SQL Server).
Quando si apre una connessione al database, per impostazione predefinita @@TEXTSIZE verrà impostato su -1 (senza limiti).
È anche possibile accedere alle colonne FILESTREAM e aggiornarle utilizzando l'API del file system di Windows.
Per ulteriori informazioni, vedi gli argomenti seguenti:
Esecuzione di una query sulle colonne FILESTREAM
I set di righe degli schemi in OLE DB non indicano se una colonna è di tipo FILESTREAM. Impossibile utilizzare ITableDefinition in OLE DB per creare una colonna FILESTREAM.
Le funzioni del catalogo, ad esempio SQLColumns in ODBC, non segnalano se una colonna è una colonna FILESTREAM.
Per creare colonne FILESTREAM o per individuare le colonne di tipo FILESTREAM esistenti, è possibile utilizzare la colonna is_filestream della vista di catalogo sys.columns.
Di seguito è riportato un esempio:
-- 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à con le versioni precedenti
Se il client è stato compilato usando la versione di SQL Server Native Client inclusa in SQL Server 2005 (9.x) e l'applicazione si connette a una versione più recente di SQL Server, il comportamento varbinary(max) sarà compatibile con SQL Server 2005 (9.x). Questo significa che i dati restituiti avranno come dimensione massima 2 GB. Per valori di dimensioni superiori a 2 GB, verrà eseguito un troncamento e restituito l'avviso "Troncamento a destra dei dati della stringa".
Quando la compatibilità con il tipo di dati è impostata su 80, il comportamento client sarà coerente con il comportamento del client legacy.
Per i client che usano SQLOLEDB o altri provider rilasciati prima della versione di SQL Server 2005 (9.x) di SQL Server Native Client, verrà eseguito il mapping di varbinary(max) all'immagine.
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per