sexta-feira, 2 de agosto de 2013

SQL Server 2012 – FileTable

Criação da base de dados com FileGroup e FileStream habilitado


CREATE DATABASE solucoesdba
ON
PRIMARY ( NAME = Arch1,
    FILENAME = 'd:\SQL_Server\2012\Data\solucoesdba.mdf'),
FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM( NAME = Arch3,
    FILENAME = 'd:\SQL_Server\2012\Data\filestream')
LOG ON  ( NAME = Archlog1,
    FILENAME = 'd:\SQL_Server\2012\Log\solucoesdba.ldf')
GO

Criação da pasta dentro do FileStream para a utilização da FileTable

ALTER DATABASE BlogFileTable SET FILESTREAM( NON_TRANSACTED_ACCESS = FULL, 
DIRECTORY_NAME = 'solucoesdba') WITH NO_WAIT
GO


Aqui,voce já deve poder visualizar se o acesso FileStream esta habilitado em sua base de dados, vide select:

SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options;

Todos os arquivos que iremos visualizar estará contido em uma tabela, obviamente, portanto, devemos criar esta tabela, que possui uma sintaxe curiosa, e um pouco diferente de um CREATE TABLE regular…

CREATE TABLE Documentos AS FileTable
    WITH ( 
          FileTable_Directory = 'solucoesdba',
          FileTable_Collate_Filename = database_default
         );
GO

Agora, basta você copiar e colar os arquivos no caminho especificado, que no meu caso, é: \\servidor\mssqlserver\solucoesdba\solucoesdba

Caso voce não esteja conseguindo abrir a pasta, execute:

SELECT FileTableRootPath ('Documentos', 2)
Ou seja, trocando “Documentos” pelo nome da sua tabela FileTable

O select nesta tabela pode e deve ser feito normalmente:

SELECT * FROM Documentos
Aonde sera possível encontrar N informações sobre o arquivo.


Outra curiosidade é a possibilidade de se criar diretórios, ou seja, alem de automático  sua arquivos também pode ficar organizados!

Nenhum comentário:

Postar um comentário