FILESTREAM-Unterstützung

Gilt für:SQL Server

Wichtig

Der SQL Server Native Client (häufig abgekürzt mit SNAC) wurde aus SQL Server 2022 (16.x) und SQL Server Management Studio 19 (SSMS) entfernt. Der SQL Server Native Client (SQLNCLI oder SQLNCLI11) und der Microsoft OLE DB-Legacyanbieter für SQL Server (SQLOLEDB) werden für neue Anwendungsentwicklungen nicht empfohlen. Verwenden Sie in Zukunft den neuen Microsoft OLE DB-Treiber für SQL Server (MSOLEDBSQL) oder den neuesten Microsoft ODBC Driver for SQL Server. Informationen zu SQLNCLI, die als Komponente der SQL Server-Datenbank-Engine (Versionen 2012 bis 2019) enthalten ist, finden Sie in dieser Supportlebenszyklus-Ausnahme.

Die FILESTREAM-Funktion bietet eine Möglichkeit, große binäre Werte zu speichern und entweder über SQL Server oder durch direkten Zugriff auf das Windows-Dateisystem darauf zuzugreifen. Ein großer Binärwert ist ein Wert, der größer als 2 Gigabyte (GB) ist. Weitere Informationen zur verbesserten FILESTREAM-Unterstützung finden Sie unter FILESTREAM (SQL Server).

Wenn eine Datenbankverbindung geöffnet wird, wird @@TEXTSIZE standardmäßig auf -1 („unbegrenzt“) festgelegt.

Es ist auch möglich, mit Windows-Dateisystem-APIs auf FILESTREAM-Spalten zuzugreifen und diese zu aktualisieren.

Weitere Informationen finden Sie in den folgenden Themen:

Abfragen von FILESTREAM-Spalten

Schemarowsets in OLE DB geben nicht an, ob eine Spalte eine FILESTREAM-Spalte ist. ITableDefinition in OLE DB kann nicht verwendet werden, um eine FILESTREAM-Spalte zu erstellen.

Katalogfunktionen wie SQLColumns in ODBC melden nicht, ob eine Spalte eine FILESTREAM-Spalte ist.

Mithilfe der is_filestream-Spalte der sys.columns-Katalogsicht können Sie FILESTREAM-Spalten erstellen oder ermitteln, welche der vorhandenen Spalten FILESTREAM-Spalten sind.

Es folgt ein Beispiel:

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

Kompabilität mit früheren Versionen

Wenn Ihr Client mit der Version von SQL Server Native Client kompiliert wurde, die in SQL Server 2005 (9.x) enthalten war, und die Anwendung eine Verbindung mit einer neueren Version von SQL Server herstellt, ist das Verhalten von varbinary(max) mit SQL Server 2005 (9.x) kompatibel. Das heißt, die Maximalgröße der zurückgegebenen Daten ist auf 2 GB beschränkt. Ergebniswerte, die größer als 2 GB sind, werden abgeschnitten, und es wird die Warnung „Zeichenfolgendaten werden rechts abgeschnitten“ zurückgegeben.

Wenn Datentypkompatibilität auf 80 festgelegt wird, ist das Clientverhalten mit dem Verhalten von Clients früherer Versionen konsistent.

Für Clients, die SQLOLEDB oder andere Anbieter verwenden, die vor der SQL Server Version 2005 (9.x) von SQL Server Native Client veröffentlicht wurden, wird varbinary(max) dem Image zugeordnet.

Weitere Informationen

SQL Server Native Client-Funktionen