SQL Server 2008 Filestream

  Ms Sql server 2008 ile gelen yeni özelliklerden birisi de Filestream özelliği.Öncesin de DataBase üzerinde BLOB tipinde binary datalar tutardık.Filestream de datalar NTFS disk sisteminde dosyalarda tutuluyor.Yani DataBase üzerinde değil. Fakat verilere, DataBase engine üzerinden ulaşıyoruz. Artık Ses dosylarını ,Resim gibi verileri tutmak için FileStrem yapısını kullanabiliriz. Şimdi bir örnek ile daha ayrıntılı inceleyelim...

Öncelikle disk üzerinde FileStrem ve data dosyalarının olacağı yeni dosya yaratalım 
C:\data

Ms SQL server sunucumuzda filestream özelliğini enable edelim
EXEC sp_configure 'filestream_access_level',2
RECONFIGURE
Tabiki bununla yetmiyor, birde configure tools dan enable edilmesi gerekiyor. 


Start menu / All Programs /Microsoft SQL Server 2008/ Configuration Tools/ SQL Server Configuration Manager.  Sağ click  SQL Server Services properties / click FILESTREAM tab  /enable FILESTREAM.

Eğer yazma ve okuma işlemleri olucaksa "FILESTREAM for file I/O streaming access" bölümünü de anable yapılmalı







  












Yeni bir DB yaratalım


CREATE DATABASE DOSYA
ON
PRIMARY ( NAME=DOSYA,FILENAME='c:\data\DOSYA.mdf'),
FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM( NAME=DOSYA3,FILENAME='c:\data\filestream1')
LOG ON(NAME=DOSYA1,FILENAME='c:\data\DOSYA.ldf')
GO


Dosyalarımızı bir kontrol edelim.













C:\data altına yeni bir filestream dosyası yarattı










Şimdi yeni bir tablo yaratalım.


Not:  Filestream içeren tabloda [uniqueidentifier] alan kullanılması zorunludur. Filestream column veritipi VARBINARY(MAX) FILESTREAM 


use DOSYA

GO
CREATE TABLE Döküman
(
[Id] [uniqueidentifier] ROWGUIDCOL NOT NULL UNIQUE,
[SerialNumber] INTEGER UNIQUE,
[Chart] VARBINARY(MAX) FILESTREAM NULL
)
GO


  Tablonun özelliğine baktığımızda Filestream filegroup olarak yeni yarattımız Filestream filegroup1 üzerine konumlanmıştır.









 Böylelikle Filestream özelliğinden yararlanarak yeni bir tablo yaratmış olduk. Küçük bir örnek yapıcak olursak  şu şekilde bir kayıt insert edelim.Bu instert verileri içeren bir dosya nasıl oluşturulur bize gösteriyor. 

INSERT INTO Döküman

VALUES (newid (), 1, CAST ('ilker usta pusulanı ayarla' as varbinary(max)));
GO

  Şimdi gidip fileStream FileGroup incelersek buraya binary dataların oluştuğunu ve disk üzerindeki dosyalarda tutulduğunu görebiliriz.









  Bu dosyaları notepad ile açarsanız içerisinde insert edilen bilgileri görebilirsiniz. ( kontrol ettiğimde son insert ettiğim bu metni görüyorum 'ilker usta pusulanı ayarla'
  Şimdilik kolay gelsin J




Ara