Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Thema wird beschrieben, wie Die Transact-SQL INSERT-, UPDATE- und DELETE-Anweisungen zum Verwalten von FILESTREAM-Daten verwendet werden.
Hinweis
Die Beispiele in diesem Thema erfordern die FILESTREAM-fähige Datenbank und Tabelle, die in Create a FILESTREAM-Enabled Database erstellt werden, und Erstellen einer Tabelle zum Speichern von FILESTREAM-Daten.
Einfügen einer Zeile mit FILESTREAM-Daten
Zum Hinzufügen einer Zeile zu einer Tabelle, die FILESTREAM-Daten unterstützt, verwenden Sie die Transact-SQL INSERT-Anweisung. Wenn Sie Daten in eine FILESTREAM-Spalte einfügen, können Sie NULL oder einen varbinary(max) Wert einfügen.
Einfügen von NULL
Das folgende Beispiel zeigt, wie man NULL einfügt. Wenn der FILESTREAM-Wert lautet NULL, erstellt das Datenbankmodul keine Datei im Dateisystem.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 1, NULL);
GO
Einfügen eines Zero-Length Datensatzes
Das folgende Beispiel zeigt, wie INSERT einen Datensatz von null Länge erstellt. Dies ist nützlich, wenn Sie ein Dateihandle abrufen möchten, aber die Datei mithilfe von Win32-APIs bearbeiten.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 2,
CAST ('' as varbinary(max)));
GO
Erstellen einer Datendatei
Das folgende Beispiel zeigt, wie man INSERT verwendet, um eine Datei zu erstellen, die Daten enthält. Das Datenbankmodul konvertiert die Zeichenfolge Seismic Data in einen varbinary(max) Wert. FILESTREAM erstellt die Windows-Datei, wenn sie noch nicht vorhanden ist. Die Daten werden dann der Datendatei hinzugefügt.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 3,
CAST ('Seismic Data' as varbinary(max)));
GO
Wenn Sie alle Daten aus dem Archive.
dbo.Records die Ergebnisse ähneln den Ergebnissen, die in der folgenden Tabelle angezeigt werden. Die Id Spalte enthält jedoch unterschiedliche GUIDs.
| Id | Seriennummer | Lebenslauf |
|---|---|---|
C871B90F-D25E-47B3-A560-7CC0CA405DAC |
1 |
NULL |
F8F5C314-0559-4927-8FA9-1535EE0BDF50 |
2 |
0x |
7F680840-B7A4-45D4-8CD5-527C44D35B3F |
3 |
0x536569736D69632044617461 |
Aktualisieren von FILESTREAM-Daten
Sie können Transact-SQL verwenden, um die Daten in der Dateisystemdatei zu aktualisieren; Obwohl Sie dies möglicherweise nicht tun möchten, wenn Sie große Datenmengen in eine Datei streamen müssen.
Im folgenden Beispiel wird der gesamte Text im Dateidatensatz durch den Text Xray 1ersetzt.
UPDATE Archive.dbo.Records
SET [Chart] = CAST('Xray 1' as varbinary(max))
WHERE [SerialNumber] = 2;
Löschen von FILESTREAM-Daten
Wenn Sie eine Zeile löschen, die ein FILESTREAM-Feld enthält, löschen Sie auch die zugrunde liegenden Dateisystemdateien. Die einzige Möglichkeit zum Löschen einer Zeile und daher der Datei besteht darin, die Transact-SQL DELETE-Anweisung zu verwenden.
Das folgende Beispiel zeigt, wie Eine Zeile und die zugehörigen Dateisystemdateien gelöscht werden.
DELETE Archive.dbo.Records
WHERE SerialNumber = 1;
GO
Wenn Sie alle Daten aus der dbo.Archive Tabelle auswählen, ist die Zeile nicht mehr vorhanden. Sie können die zugeordnete Datei nicht mehr verwenden.
Hinweis
Die zugrunde liegenden Dateien werden vom FILESTREAM Garbage Collector entfernt.
Siehe auch
Aktivieren und Konfigurieren von FILESTREAM
Vermeiden von Konflikten mit Datenbankvorgängen in FILESTREAM-Anwendungen