Bu makalemizde SQL Server 2012 ile gelen yeni bir tablo türü olan FileTable a göz atacağız.
- Yazılım Uzmanları
- 13 Mayıs 2018
- 1126 kez görüntülendi.
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.
Bu yazıya 0 yorum yapılmış.