SQL Server 2012 incluye una nueva característica llamada FileTable, lo que permite el FileTable es poder tener dentro de la base de datos un tipo especial de tabla en la cual se puedan almacenar archivos y directorios, de la misma forma en que se hace en un sistema de archivos NTFS.

De esta forma los archivos almacenados en un FileTable puede ser accedidos por otras aplicaciones de la misma forma en que se acceden archivos en el sitema de archivos NTFS. La ventaja de que presenta FileTable es que el contenido es presentado a las aplicaciones como un directorio compartido.

Cuando se realiza una operación de creación de archivos, borrado o modificación, el comando es interceptado por SQL Server que hace posible que se reflejen los cambios dentro del FileTable.

 

A muchos parecerá familiar al concepto de FILESTREAM, sin embargo se puede configurar FileTables de forma separada del FILESTREAM, incluso si lo desea puede seguir utilizando FILESTREAM. Para habilitar el FileTable primero tienen que habilitar el FILESTREAM en la instancia que desean crear el FileTable.

 

1. Para habilitar el FILESTREAM ejecutamos el siguiente comando

EXEC sp_configure filestream_access_level, 2 RECONFIGURE

image

 

2. Debemos crear una nueva base de datos o utilizar una existente, en mi caso voy a crear la base de datos ComunidadWindows

CREATE DATABASE ComunidadWindows
ON
PRIMARY ( NAME = ComunidadWindows,
    FILENAME = ‘c:\Datos\ComunidadWindowsData.mdf’),
    FILEGROUP FileStreamGroupCW CONTAINS FILESTREAM( NAME = ComunidadWindows03,
        FILENAME = ‘c:\Datos\FileStream’)
        LOG ON  ( NAME = ComunidadWindowsLog,
            FILENAME = ‘c:\Datos\ComunidadWindowsLog.ldf’)
            GO

image

 

3. Debemos habilitar el acceso Non-Transactional a nivel de la base de datos

ALTER DATABASE ComunidadWindows
    SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL , DIRECTORY_NAME = N’FileTable’);
    GO

image

 

 

4. Ahora creamos la tabla tipo FileTable

Use ComunidadWindows

CREATE TABLE Documentos AS FileTable
WITH
(
    FileTable_Directory = ‘Documentos’,
        FileTable_Collate_Filename = database_default
        );
        GO

image

 

5. Podemos ver que nuestro FileTable fue creado

 

image

 

6. Podemos acceder el FileTable creado como un directorio compartido

image

 

7. Podemos copiar archivos en esa carpeta utilizando Copiar y Pegar

image

 

8. Si hacemos un select podemos ver que los archivos están dentro de SQL Server

 

image

 

Saludos,

Ing. Eduardo Castro Martínez, PhD – Microsoft SQL Server MVP

http://tinyurl.com/ComunidadWindows

http://tiny.cc/comwindows

http://mswindowscr.org

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

http://ecastrom.blogspot.com

https://ecastrom.wordpress.com

http://ecastrom.spaces.live.com

http://universosql.blogspot.com

http://todosobresql.blogspot.com

http://todosobresqlserver.wordpress.com

http://mswindowscr.org/blogs/sql/default.aspx

http://citicr.org/blogs/noticias/default.aspx

http://sqlserverpedia.blogspot.com/