FILESTREAM-Unterstützung
Gilt für: SQL Server
Wichtig
SQL Server Native Client (SNAC) wird nicht ausgeliefert mit:
- SQL Server 2022 (16.x) und höhere Versionen
- SQL Server Management Studio 19 und höhere Versionen
Der SQL Server Native Client (SQLNCLI oder SQLNCLI11) und der ältere Microsoft OLE DB-Anbieter für SQL Server (SQLOLEDB) werden für die entwicklung neuer Anwendungen nicht empfohlen.
Für neue Projekte verwenden Sie einen der folgenden Treiber:
Informationen zu SQLNCLI, das als Komponente der SQL Server Datenbank-Engine (Versionen 2012 bis 2019) ausgeliefert wird, finden Sie in dieser Ausnahme für den Supportlebenszyklus.
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 es sich bei einer Spalte um eine FILESTREAM-Spalte handelt.
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 varbinary(max)-Verhalten 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 2005 (9.x)-Version von SQL Server Native Client veröffentlicht wurden, wird varbinary(max) dem Image zugeordnet.