Bu makalemizde SQL Server 2012 ile gelen yeni bir tablo türü olan FileTable a göz atacağız.

SQL Server 2012 FileTable

 Bu makalemizde SQL Server 2012 ile gelen yeni bir tablo türü olan FileTable a göz atacağız.  Bu ilk SQL 2012 makalemizde basit bir (FileTable) tablo oluşturup klasör ve dosyaları nasıl takip edebileceğimizi inceleyeceğiz.

Bir FileTable SQL tablosu tanımladığınız dizin ve dosyalarla ilgili değişiklikleri saklayabileceğiniz bir tablodur. Tabii bu işlem için Windows taki dizin ve dosyalara erişim hakkınızın bulunması gerekiyor. 

Bir klasör için FileTable oluşturduğunuzda o klasörde dosya oluşturduğunuzda veya dosyalarda değişiklik yaptığınızda klasörle ilgili tablo üzerinde gerekli güncellemeler yapılır.  

Bu konuyu daha iyi görebilmek için önce bir veritabanı oluşturalım. Bu işlem için tam yetki tanımlaması yapacağım.

CREATE DATABASE DosyaTakip
ON  PRIMARY
(
    NAME = N'DosyaTakip',
    FILENAME = N'D:\Database\DosyaTakip.mdf'
),
FILEGROUP DosyaTakipFG CONTAINS FILESTREAM
(
    NAME = DosyaTakipData,
    FILENAME= 'D:\Database\Data'
)
LOG ON
(
    NAME = N'MyFileTableTest_Log',
    FILENAME = N'D:\Database\DosyaTakip_log.ldf'
)
WITH FILESTREAM
(
    NON_TRANSACTED_ACCESS = FULL,
    DIRECTORY_NAME = N'Dosyalar'
)

Bu işlemleri gerçekleştirdiğimizde paylaşımdaki klasörlere bakacak olursak SQL serverınızın adında bir klasör paylaştığını göreceksiniz. Bu veritabanını oluşturduktan sonra da bu SQL paylaşımının altında Dosyalar diye bir klasör oluşturulduğunu takip edebiliriz. 

Şimdi bu veritabanımızın altında bir FileTable tablosu oluşturalım.

CREATE TABLE tblProjeler AS FileTable
WITH
(
    FileTable_Directory = 'Proje Dosyalarim',
    FileTable_Collate_Filename = database_default
);

FileTable altında tblProjeler tablomuzu oluşturduktan sonra SQL Serverımdaki tablo görüntüsü aşağıdaki gibi oluştu

 Tablomuzun üzerine sağ klik yaptığımızda Explore FileTable Directory seçeneğini göreceksiniz. Buraya tıkladığınızda ilgili klasörü Windows Explore da açacaktır.  Bu klasörde örnek klasör ve dosyalar oluşturdum.

 

 

 Tablomuza sorgu çekecek olursak aşağıdaki gibi kayıtlar görüntülenecektir.

SELECT TOP 1000 [stream_id]
      ,[file_stream]
      ,[name]
      ,[path_locator]
      ,[parent_path_locator]
      ,[file_type]
      ,[cached_file_size]
      ,[creation_time]
      ,[last_write_time]
      ,[last_access_time]
      ,[is_directory]
      ,[is_offline]
      ,[is_hidden]
      ,[is_readonly]
      ,[is_archive]
      ,[is_system]
      ,[is_temporary]
  FROM [DosyaTakip].[dbo].[tblProjeler]

Burada tablomuzdaki kayıtlardan ProjeNotları.txt nin adını değiştirdiğimiz zaman bu değişikliğin klasördeki dosyanın adına da yansıdığını görebiliriz.

  update tblProjeler
  set name = 'NOTLARIM.txt'
  Where stream_id = '374F8F7E-EDAC-E111-960E-541EC515A012'

 

Şimdilik bu kadar. 

İlgili Makaleler

Bu yazıya 0 yorum yapılmış.

Yorum Gönder