| Saving Attachments Outside DatabaseAttachments, which usually occupy the largest part of the database, can also be saved outside the database using the filestream technology. Attachments size is then not counted into the database size itself. Enable this option if the requests often contain attachments that considerably add to the size of the database and you want to use ALVAO on Microsoft SQL Server Express where the database size is limited. 
	
	Note: Saving attachments outside database has no influence on the performance of the ALVAO system. Enabling the Option to Save Attachments Outside Database
				Enabling Filestream on the MS SQL Server
								Enabling Filestream During the MS SQL Server Installation
												Open the Database Engine Configuration page.Enable the following options on the FILESTREAM tab gradually:
																Enable FILESTREAM for Transact-SQL accessEnable FILESTREAM for file I/O streaming accessAllow remove clients to have streaming access to FILESTREAM dataContinue the installation.Enabling Filestream After the MS SQL Server Installation
												Launch SQL Server Configuration Manager.Right-click on the SQL Server Service instance which you want to enable filestream to.Enable all the options on the FILESTREAM tab gradually.Click OK to save.Launch SQL Server Management StudioLaunch the following SQL script over target DB ALVAO:
																EXEC sp_configure filestream_access_level, 2GO
 RECONFIGURE
 GO
Enabling Filestream from Command Line
												Download the script enabling filestream from command line here.Run the following command in the command line:
																cscript filestream_enable.vbs /Machine:<machine name> /Instance:<sql server instance> /Level:3
 Parameters:
 Machine: Target machine name. If not specified, local machine is selected.
 Instance: Sql server instance. If not specified, default one (MSSQLSERVER) is used.
 Level: FILESTREAM functionality level which will be enabled. If not specified, 3 will be selected.
 0 – FILESTREAM functionality is disabled.
 1 – Enables FILESTREAM for T-SQL access.
 2 – Enables FILESTREAM for T-SQL and I/O streaming access, but does not enable remote I/O streaming access.
 3 – Enables FILESTREAM for T-SQL and I/O streaming access and also for remote I/O streaming access.
Launch SQL Server Management StudioLaunch the following SQL script over target DB ALVAO:
																EXEC sp_configure filestream_access_level, 2GO
 RECONFIGURE
 GO
Adding Filestream to Database
								Launch SQL Server Management Studio.Launch the following SQL script over target DB ALVAO:
												ALTER DATABASE [<database_name>]ADD FILEGROUP fstDocumentGroup contains filestream;
 go
 declare @db_name varchar (MAX)
 declare @filestream_loc varchar (MAX)
 SELECT @db_name = physical_name FROM sys.master_files WHERE database_id = DB_ID(DB_NAME()) AND type_desc = 'ROWS'
 set @db_name = REVERSE(RIGHT(REVERSE(@db_name),(LEN(@db_name)-CHARINDEX('\', REVERSE(@db_name),1))+1))
 set @filestream_loc = @db_name + 'AlvaoFileStream'
 
 DECLARE @AddFileSql varchar(max);
 SET @AddFileSql = 'ALTER DATABASE [<database_name>]
 ADD FILE
 ( NAME = ''fstDocument'', FILENAME = ' + QuoteName( @filestream_loc, '''' ) + ')
 TO FILEGROUP [fstDocumentGroup];
 ';
 EXEC (@AddFileSql);
 
								
								Note: The script will create a folder for saving the filestream in the folder containing database files.  If you want to save the filestream in a custom defined folder, enter its name including absolute path in the @filestream_loc variable: ALTER DATABASE [<database_name>]ADD FILEGROUP fstDocumentGroup contains filestream;
 go
 declare @filestream_loc varchar (MAX)
 set @filestream_loc = 'C:\<path>\<folder_with_filestream>'
 
 DECLARE @AddFileSql varchar(max);
 SET @AddFileSql = 'ALTER DATABASE [<database_name>]
 ADD FILE
 ( NAME = ''fstDocument'', FILENAME = ' + QuoteName( @filestream_loc, '''' ) + ')
 TO FILEGROUP [fstDocumentGroup];
 ';
 EXEC (@AddFileSql);
 
								
								Warning: The target folder must not exist when you run the script. It will be created automatically after the script is run.Adding Filestream into tDocument Table
								Launch SQL Server Management Studio.Launch the following SQL script over target DB ALVAO:
												ALTER TABLE dbo.tDocument SET (FILESTREAM_ON = fstDocumentGroup)GO
 ALTER Table dbo.tDocument
 ADD uniqueGUID UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL
 CONSTRAINT UQ_tDocument_uniqueGUID UNIQUE
 CONSTRAINT DF_tDocument_uniqueGUID DEFAULT newid()
 GO
 
 ALTER TABLE dbo.tDocument
 ADD TempColumn varbinary(max) FILESTREAM NULL
 GO
 
 DECLARE @curId INT
 DECLARE @db_cursor CURSOR
 SET @db_cursor = CURSOR FOR
 SELECT iDocumentId FROM dbo.tDocument WHERE oDocument IS NOT NULL
 
 OPEN @db_cursor
 FETCH NEXT FROM @db_cursor INTO @curId
 
 WHILE @@FETCH_STATUS = 0
 BEGIN
 UPDATE dbo.tDocument SET TempColumn = oDocument WHERE iDocumentId = @curId
 UPDATE dbo.tDocument SET oDocument = NULL WHERE iDocumentId = @curId
 
 FETCH NEXT FROM @db_cursor INTO @curId
 END
 CLOSE @db_cursor
 DEALLOCATE @db_cursor
 GO
 
 ALTER TABLE dbo.tDocument DROP COLUMN oDocument
 GO
 
 EXEC sp_rename 'dbo.tDocument.TempColumn', 'oDocument', 'COLUMN'
 GO
 Disabling the Option to Save Attachments Outside Database
				Removing Filestream from tDocument Table
								Launch the following script over target DB ALVAO in the SQL Server Management Studio:
												ALTER TABLE dbo.tDocument ADD TempColumn varbinary(max)GO
 
 DECLARE @curId INT
 DECLARE @db_cursor CURSOR
 SET @db_cursor = CURSOR FOR
 SELECT iDocumentId FROM dbo.tDocument WHERE oDocument IS NOT NULL
 
 OPEN @db_cursor
 FETCH NEXT FROM @db_cursor INTO @curId
 
 WHILE @@FETCH_STATUS = 0
 BEGIN
 UPDATE dbo.tDocument SET TempColumn = oDocument WHERE iDocumentId = @curId
 UPDATE dbo.tDocument SET oDocument = NULL WHERE iDocumentId = @curId
 
 FETCH NEXT FROM @db_cursor INTO @curId
 END
 CLOSE @db_cursor
 DEALLOCATE @db_cursor
 
 GO
 ALTER TABLE dbo.tDocument DROP COLUMN oDocument
 GO
 EXEC sp_rename 'dbo.tDocument.TempColumn', 'oDocument', 'COLUMN'
 GO
 ALTER TABLE dbo.tDocument set (filestream_on = "NULL")
 GO
 ALTER TABLE dbo.tDocument ALTER COLUMN uniqueGUID DROP ROWGUIDCOL
 GO
 ALTER TABLE dbo.tDocument DROP CONSTRAINT DF_tDocument_uniqueGUID
 GO
 ALTER TABLE dbo.tDocument DROP CONSTRAINT UQ_tDocument_uniqueGUID
 GO
 ALTER TABLE dbo.tDocument DROP COLUMN uniqueGUID
Removing Filestream from Database
								Launch the following script in the SQL Management Studio:
												ALTER DATABASE [<database_name>] REMOVE FILE fstDocumentGO
 ALTER DATABASE [<database_name>] REMOVE FILEGROUP fstDocumentGroup
 GO
Disabling Filestream on the MS SQL Server
								Disabling in the SQL Configuration Manager
												Launch SQL Server Management Studio.Launch the following SQL script over target DB ALVAO:
																EXEC sp_configure filestream_access_level, 0GO
 RECONFIGURE
 GO
Launch SQL Server Configuration Manager.Right-click on the SQL Server Service instance which you want to disable filestream to.Disable all the options on the FILESTREAM tab gradually.Click OK to save.Disabling in Command Line
												Launch SQL Server Management Studio.Launch the following SQL script over target DB ALVAO:
																EXEC sp_configure filestream_access_level, 0GO
 RECONFIGURE
 GO
Download the script setting filestream from command line here.Run the following command in the command line:
																cscript filestream_enable.vbs /Machine:<machine name> /Instance:<sql server instance> /Level:0   
Did not find what you were looking for? Ask our technical support team.
                 |