Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describe cómo usar las instrucciones INSERT, UPDATE y DELETE de Transact-SQL para administrar datos FILESTREAM.
Nota:
Los ejemplos de este tema requieren la base de datos y la tabla habilitadas para FILESTREAM que se crean en Crear una base de datos FILESTREAM-Enabled y Crear una tabla para almacenar datos FILESTREAM.
Inserción de una fila que contiene datos FILESTREAM
Para agregar una fila a una tabla que admita datos FILESTREAM, use la instrucción INSERT Transact-SQL. Al insertar datos en una columna FILESTREAM, puede insertar NULL o un varbinary(max)
valor.
Inserción de NULL
En el ejemplo siguiente se muestra cómo insertar NULL
. Cuando el valor FILESTREAM es NULL
, el motor de base de datos no crea un archivo en el sistema de archivos.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 1, NULL);
GO
Insertar un registro de Zero-Length
En el ejemplo siguiente se muestra cómo usar INSERT
para crear un registro de longitud cero. Esto es útil para cuando quiera obtener un identificador de archivo, pero manipulará el archivo mediante las API de Win32.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 2,
CAST ('' as varbinary(max)));
GO
Crear un archivo de datos
En el ejemplo siguiente se muestra cómo usar INSERT
para crear un archivo que contenga datos. El motor de base de datos convierte la cadena Seismic Data
en un varbinary(max)
valor. FILESTREAM crea el archivo de Windows si aún no existe. A continuación, los datos se agregan al archivo de datos.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 3,
CAST ('Seismic Data' as varbinary(max)));
GO
Al seleccionar todos los datos del Archive
.
dbo.Records
table, los resultados son similares a los resultados que se muestran en la siguiente tabla. Sin embargo, la Id
columna contendrá GUIDs diferentes.
ID | Número de serie | Reanudar |
---|---|---|
C871B90F-D25E-47B3-A560-7CC0CA405DAC |
1 |
NULL |
F8F5C314-0559-4927-8FA9-1535EE0BDF50 |
2 |
0x |
7F680840-B7A4-45D4-8CD5-527C44D35B3F |
3 |
0x536569736D69632044617461 |
Actualización de datos FILESTREAM
Puede usar Transact-SQL para actualizar los datos en el archivo del sistema de archivos; Aunque es posible que no quiera hacerlo cuando tenga que transmitir grandes cantidades de datos a un archivo.
En el ejemplo siguiente se reemplaza cualquier texto del registro del archivo por el texto Xray 1
.
UPDATE Archive.dbo.Records
SET [Chart] = CAST('Xray 1' as varbinary(max))
WHERE [SerialNumber] = 2;
Eliminación de datos FILESTREAM
Al eliminar una fila que contiene un campo FILESTREAM, también se eliminan sus archivos del sistema de archivos subyacentes. La única manera de eliminar una fila y, por tanto, el archivo es usar la instrucción DELETE de Transact-SQL.
En el ejemplo siguiente se muestra cómo eliminar una fila y sus archivos del sistema de archivos asociados.
DELETE Archive.dbo.Records
WHERE SerialNumber = 1;
GO
Al seleccionar todos los datos de la dbo.Archive
tabla, la fila ha desaparecido. Ya no puede usar el archivo asociado.
Nota:
El recolector de elementos no utilizados de FILESTREAM quita los archivos subyacentes.
Véase también
Habilitar y configurar FILESTREAM
Evitar conflictos con operaciones de base de datos en aplicaciones FILESTREAM