Augusto Humire Martinez web blog

algo de web-in

Asignar un diferente filegroup a una base de datos. Filestream Filegroup Database

Escenario: Dos Negocios (logica de negocio) diferentes un solo servidor de base de datos y los archivos a almacenar por lo tanto son diferente y no tienen que ver el uno con el otro.

Requerimiento: Crear un repositorio de archivos con ubicación diferente al por defecto instalado en la base de datos para la segunda aplicacion.

Previo: Un Filegroup define entre otras cosas la ubicacion de nuestro del repositorio de archivos a almacenar o filestream, asi entonces podemos definir por cada base de datos creada una diferente ubicacion fisica para almacenar archivos, es decir, por cada base de datos su propio directorio de archivos o filestream.

Solución: Crear una base de datos que defina su propia ubicacion fisica de archivos , para lograrlo solo necesitamos especificar que file group usaremos y en que dirección se encuentra.

Codigo:

–<<Codigo a ejecutar>>

DECLARE @data_path nvarchar(256) = ‘K:\BSLDriveDB\’;
DECLARE @dbName nvarchar(256) = ‘bslDriveTest’;
DECLARE @query nvarchar(1000) =
— Execute the CREATE DATABASE statement.
‘CREATE DATABASE ‘ + @dbName
+ ‘ ON PRIMARY
(
NAME = ‘ + @dbName + ‘_data
,FILENAME = ”’ + @data_path + @dbName +’.mdf”
–,SIZE = 10MB
–,MAXSIZE = 50MB
–,FILEGROWTH = 15%
),
FILEGROUP FileStreamBSLDrive CONTAINS FILESTREAM DEFAULT
(
NAME = FSBSLDrive
,FILENAME = ”’ + @data_path + ‘Store”’
+ ‘)’
+ ‘LOG ON
(
NAME = ‘ + @dbName + ‘_log
,FILENAME = ”’ + @data_path + @dbName + ‘_log.ldf”
,SIZE = 1MB
,MAXSIZE = 5MB
,FILEGROWTH = 5MB
)’

–SELECT @query;
EXECUTE (@query);

–<<//Codigo a ejecutar>>

Este comando ejecutará el siguiente resultado

CREATE DATABASE bslDriveTest
ON PRIMARY
(
NAME = bslDriveTest_data
,FILENAME = ‘K:\BSLDriveDB\bslDriveTest.mdf’
–,SIZE = 10MB
–,MAXSIZE = 50MB
–,FILEGROWTH = 15%
)
,FILEGROUP FileStreamBSLDrive CONTAINS FILESTREAM DEFAULT
(
NAME = FSBSLDrive
,FILENAME = ‘K:\BSLDriveDB\Store’
)
LOG ON
(
NAME = bslDriveTest_log
,FILENAME = ‘K:\BSLDriveDB\bslDriveTest_log.ldf’
,SIZE = 1MB
,MAXSIZE = 5MB
,FILEGROWTH = 5MB
)

Y ya hemos creado una base de datos con su propio directorio de archivos o filegroup.

for Dummies:

Si desea insertar un archivo se sugiere que pueda leer el siguiente articulo

https://augustohumire.wordpress.com/2012/04/03/introduccion-a-sql-server-filestream/

febrero 24, 2013 Posted by | Base de Datos | | 1 comentario