Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo argomento viene descritto come utilizzare le istruzioni INSERT, UPDATE e DELETE Transact-SQL per gestire i dati FILESTREAM.
Annotazioni
Gli esempi in questo argomento richiedono il database e la tabella abilitati per FILESTREAM creati in Creare un database FILESTREAM-Enabled e creare una tabella per l'archiviazione di dati FILESTREAM.
Inserimento di una riga contenente dati FILESTREAM
Per aggiungere una riga a una tabella che supporta i dati FILESTREAM, utilizzare l'istruzione Transact-SQL INSERT. Quando si inseriscono dati in una colonna FILESTREAM, è possibile inserire NULL o un varbinary(max) valore.
Inserimento di NULL
Nell'esempio seguente viene illustrato come inserire NULL. Quando il valore FILESTREAM è NULL, il motore di database non crea un file nel file system.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 1, NULL);
GO
Inserimento di un record Zero-Length
Nell'esempio seguente viene illustrato come usare INSERT per creare un record di lunghezza zero. Questo è utile per quando vuoi ottenere un handle di file, ma modificherà il file usando le API Win32.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 2,
CAST ('' as varbinary(max)));
GO
Creazione di un file di dati
Nell'esempio seguente viene illustrato come usare INSERT per creare un file contenente dati. Il motore di database converte la stringa Seismic Data in un varbinary(max) valore. FILESTREAM crea il file di Windows, se non esiste già. I dati vengono quindi aggiunti al file di dati.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 3,
CAST ('Seismic Data' as varbinary(max)));
GO
Quando si selezionano tutti i dati da Archive.
dbo.Records tabella, i risultati sono simili ai risultati visualizzati nella tabella seguente. Tuttavia, la Id colonna conterrà GUID diversi.
| Id | Numero di serie | Riassumere |
|---|---|---|
C871B90F-D25E-47B3-A560-7CC0CA405DAC |
1 |
NULL |
F8F5C314-0559-4927-8FA9-1535EE0BDF50 |
2 |
0x |
7F680840-B7A4-45D4-8CD5-527C44D35B3F |
3 |
0x536569736D69632044617461 |
Aggiornamento dei dati FILESTREAM
È possibile usare Transact-SQL per aggiornare i dati nel file del file system; anche se potrebbe non essere necessario eseguire questa operazione quando è necessario trasmettere grandi quantità di dati a un file.
Nel seguente esempio il testo nel record del file viene sostituito con il testo Xray 1.
UPDATE Archive.dbo.Records
SET [Chart] = CAST('Xray 1' as varbinary(max))
WHERE [SerialNumber] = 2;
Eliminazione di dati FILESTREAM
Quando si elimina una riga contenente un campo FILESTREAM, si eliminano anche i file di file system sottostanti. L'unico modo per eliminare una riga e quindi il file consiste nell'usare l'istruzione DELETE Transact-SQL.
Nell'esempio seguente viene illustrato come eliminare una riga e i relativi file di file system associati.
DELETE Archive.dbo.Records
WHERE SerialNumber = 1;
GO
Quando si selezionano tutti i dati dalla dbo.Archive tabella, la riga non è più disponibile. Non è più possibile usare il file associato.
Annotazioni
I file sottostanti vengono rimossi dal Garbage Collector di FILESTREAM.
Vedere anche
Abilitare e configurare FILESTREAM
Evitare conflitti con le operazioni di database nelle applicazioni FILESTREAM