Como configurar FileTables en SQL Server 2012
www.gpilatam.com
Buen día.
En esta ocasión vamos a aprender a configurar una nueva funcionalidad de SQL Server 2012 llamada
FILETABLE. Que es FILETABLE? Sencillo, en pocas palabras esta funcionalidad permite almacenar
archivos y carpetas en tablas de SQL Server permitiendo que las aplicaciones existentes accedan a estos
archivos de manera convencional como si lo estuviesen haciendo desde el explorador de Windows, por
lo que las aplicaciones no deberían de sufrir cambio alguno. (Tomado del MSDN del site de Microsoft)
Las aplicaciones terminan viendo una carpeta compartida únicamente, de ahí que es bastante
interesante su creación y funcionamiento.
FIleTable está creado sobre FILESTREAM, son funcionamientos distintos y ninguna se sustituye a si
misma, sin embargo como requisito fundamental para la creación de FILETABLE está que el FILESTREAM
debe de estar activo.
Más información sobre la explicación de FileTable puede ser encontrada en el siguiente link
http://msdn.microsoft.com/en-us/library/ff929144.aspx
Como configurar FILETABLE.
1. Primero vamos a validar que la funcionalidad este activa desde los servicios de SQL Server.
Como configurar FileTables en SQL Server 2012
www.gpilatam.com
2. En caso que no este configurado procedan a realizarlo, de igual manera desde el Management
Studio de SQL Server lo pueden realizar, ingresando a las propiedades del servidor de base de
datos, Advance – FILESTREAM Access Level (Les recomiendo altamente ejecutar el paso 1 y 2)
3. Se debe de reiniciar el servicio de SQL Server luego de activarlo desde el Management Studio.
4. Seguidamente ejecutar el siguiente comando
Pues aunque parezca extraño, puede ya estar configurado el FILESTREAM, pero su valor de ejecución no
va a ser el que necesitamos.
Como configurar FileTables en SQL Server 2012
www.gpilatam.com
5. Ahora ejecutamos un comando sencillo para la creación de la base de datos que utilizaremos
como prueba de la nueva funcionalidad.
CREATE DATABASE TestFileTable WITH FILESTREAM
(
NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'Documentos_GPI'
);
6. Vamos a ejecutar el siguiente comando para la creación de un nuevo FILEGROUP de tipo
FILESTREAM
USE [master] GO
ALTER DATABASE [TestFileTable] ADD FILEGROUP [FG_Filestream] CONTAINS FILESTREAM
GO
7. Agregamos ahora un DATAFILE, tal y como normalmente lo hacemos cuando utilizamos la
funcionalidad del FILESTREAM
ALTER DATABASE [TestFileTable] ADD FILE ( NAME = N'FileTable', FILENAME =
N'C:\Documentos_SQL\FileTable' ) TO FILEGROUP [FG_Filestream]
GO
En este punto ya podemos ver como lo relacionado a FILESTREAM ha sido creado en la dirección
correspondiente
Como configurar FileTables en SQL Server 2012
www.gpilatam.com
8. Seguidamente creamos la FILETABLE mediante el siguiente script
IF OBJECT_ID('dbo.DocumentosGPI', 'U') IS NOT NULL DROP TABLE dbo.DocumentosGPI
GO
CREATE TABLE dbo.DocumentosGPI AS FILETABLE
WITH
(
FILETABLE_DIRECTORY = 'Documentos_GPI', FILETABLE_COLLATE_FILENAME = database_default
)
GO
Como configurar FileTables en SQL Server 2012
www.gpilatam.com
9. Podemos ver como la tabla ha sido creada
Podemos hacer un select a la tabla para corroborar que no tenga archivos.
Como configurar FileTables en SQL Server 2012
www.gpilatam.com
10. Ahora para acceder el recurso compartido se accede desde el explorador de Windows o desde la
venta Run
11. Para copiar archivos basta con hacer un copy – paste de archivos entre una carpeta y nuestra
nueva carpeta creada para FILETABLE
12. Realizamos nuevamente la consulta a la tabla y obtenemos los siguientes resultados.
Como configurar FileTables en SQL Server 2012
www.gpilatam.com
13. Si el archivo es eliminado de la ruta, de igual manera es eliminado de SQL Server, en estos casos
SQL Server traduce las operaciones de copiado y borrado a comandos TSQL para mantener la
tabla.
Se realiza nuevamente la consulta luego del borrado del archivo.