Condividi tramite


Supporto FILESTREAM

SQL Server 2008 e SQL Server Native Client 10.0 supportano la funzionalità FILESTREAM avanzata. Questa funzionalità consente di archiviare e accedere a valori binari di grandi dimensioni mediante SQL Server o l'accesso diretto al file system di Windows. Un valore binario di grandi dimensioni è un valore superiore a 2 gigabyte (GB). Per ulteriori informazioni sul supporto FILESTREAM avanzato, vedere Panoramica di FILESTREAM.

Quando si apre una connessione al database, per impostazione predefinita @@TEXTSIZE viene impostato su -1 (senza limiti).

È anche possibile accedere alle colonne FILESTREAM e aggiornarle utilizzando l'API del file system di Windows. Per ulteriori informazioni, vedere Panoramica di FILESTREAM.

Per ulteriori informazioni, vedere gli argomenti seguenti:

Per informazioni sulle applicazioni di esempio in cui viene illustrata questa funzionalità, vedere Considerazioni per l'installazione di esempi e di database di esempio di SQL Server.

Esecuzione di una query sulle colonne FILESTREAM

I set di righe dello schema in OLE DB non indicano se una colonna è di tipo FILESTREAM. Non è possibile utilizzare ITableDefinition in OLE DB per creare una colonna FILESTREAM.

Le funzioni di catalogo come SQLColumns in ODBC non indicano se una colonna è di tipo FILESTREAM.

Per creare colonne FILESTREAM o per individuare le colonne esistenti di tipo FILESTREAM, è 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 utilizzando la versione di SQL Server Native Client inclusa in SQL Server 2005 e l'applicazione si connette a SQL Server 2008, il comportamento di varbinary(max) sarà compatibile con SQL Server 2005. 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 della stringa di dati".

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 utilizzano SQLOLEDB o altri provider rilasciati prima della versione SQL Server 2005 di SQL Server Native Client, varbinary(max) verrà mappato all'immagine.