How Can We Help?
< All Topics
Print

Włączanie filestream w MS SQL

Filestream to funkcjonalność serwera SQL, która pozwala umieścić niektóre tabele poza bazą danych i w konsekwencji często rozwiązać lub ograniczyć problem limitu 10 GB w serwerach SQL Expres. Taką możliwość musi posiadać program pracujący na bazach MS SQL. Jednym z takich programów są programy Insert Nexo

  1. Włączamy filestream dla wybranego serwera MS SQL używając sql serwer manager

Po włączeniu filestream uruchamiamy ponownie komputer

2. Za pomocą SQL Management Studio włączamy filestream na serwerze SQL

3. Za pomocą kwerendy SQL ( używając SQL management studio ) dodajemy grupę filestream do serwera SQL

DECLARE @dbName NVARCHAR(100)
-- W poniższych liniach należy wpisać nazwę bazy danych, do której chcemy dodać FILESTREAM
SET @dbName = N'nexo_AddFSToThisDB'
use nexo_AddFSToThisDB
IF NOT EXISTS(
select 1 from sys.database_files phf
inner join sys.filegroups fg on phf.data_space_id = fg.data_space_id
where fg.type_desc = N'FILESTREAM_DATA_FILEGROUP' )
BEGIN
DECLARE @fsFileName nvarchar(260)
DECLARE @fsFileLogicalName nvarchar(260)
DECLARE @fileSteramGroupName NVARCHAR(100)
DECLARE @pfname nvarchar(260)
DECLARE @sql nvarchar(max)
SET @fileSteramGroupName = N'[FileStreamGroup]'
select @pfname = MAX(phf.physical_name) from sys.database_files phf
inner join sys.filegroups fg on phf.data_space_id = fg.data_space_id
WHERE
fg.is_default= 1
AND fg.type_desc = N'ROWS_FILEGROUP'
SET @fsFileName = LEFT(@pfname, LEN(@pfname)-4)+'.fst'
SET @fsFileLogicalName = @dbName + '.fst'
PRINT 'Add FILESTREAM support';
PRINT 'Adding FILEGROUP for FILESTREAM...'
SET @sql = 'ALTER DATABASE ' + QUOTENAME(@dbName) + ' ADD FILEGROUP '+ @fileSteramGroupName+' CONTAINS FILESTREAM';
EXEC (@sql);
PRINT 'Adding Container in FILESTREAM Group'
SET @sql = 'ALTER DATABASE ' + QUOTENAME(@dbName) + ' ADD FILE ( NAME = N''' +@fsFileLogicalName + ''', FILENAME = N''' + @fsFileName + ''') TO FILEGROUP '+ @fileSteramGroupName
EXEC (@sql);
END
ELSE
BEGIN
PRINT 'Already have FILESTREAM.'
END

Dalsze kroki zależą od programu i tabel, dla których chcemy użyć filestream. W programach linii nexo są to zdjęcia, załączniki wiadomości pocztowych, biblioteka dokumentów. Aby dowiedzieć się które tabele zajmują dużo miejsca w bazie możemy użyć skryptu

Table of Contents