Dobrze jest mieć w pogotowiu skrypt, który z góry założonymi regułami założy nam bazę danych w MS SQL Server. Najlepiej jest utworzyć w bazie filegrupy w podziale na dane podstawowe np. FG_DBO, która jest domyślną FG oraz FG_TEMP na obiekty tymczasowe. W FG PRIMARY przechowywane sa tylko obiekty systemowe.

declare @database varchar(80)
, @lokalizacjaData varchar(800)
, @lokalizacjaLog varchar(800)
select @database = 'FOO'
,@lokalizacjaData = 'E:\DBSQL2\MSSQL14.DWH_PRD\MSSQL\UserData'
,@lokalizacjaLog = 'E:\DBLogs2\MSSQL14.DWH_PRD\MSSQL\UserLog'

print 'USE [master]
GO
CREATE DATABASE [' + @database+']
CONTAINMENT =NONE
ON  PRIMARY
( NAME =N'''+ @database+''',FILENAME=N'''+@lokalizacjaData+'\'+ @database+'.mdf'', SIZE = 524288KB , MAXSIZE =UNLIMITED, FILEGROWTH = 0),
FILEGROUP [FG_DBO]  DEFAULT
( NAME =N'''+ @database+'_FG_DBO1'',FILENAME=N'''+@lokalizacjaData+'\'+ @database+'_FG_DBO1.ndf'', SIZE = 5242880KB , MAXSIZE =UNLIMITED, FILEGROWTH = 0),
( NAME =N'''+ @database+'_FG_DBO2'',FILENAME=N'''+@lokalizacjaData+'\'+ @database+'_FG_DBO2.ndf'', SIZE = 5242880KB , MAXSIZE =UNLIMITED, FILEGROWTH = 0),
FILEGROUP [FG_TEMP] 
( NAME =N'''+ @database+'_FG_TEMP1'',FILENAME=N'''+@lokalizacjaData+'\'+ @database+'_FG_TEMP1.ndf'', SIZE = 524288KB , MAXSIZE =UNLIMITED, FILEGROWTH = 0),
( NAME =N'''+ @database+'_FG_TEMP2'',FILENAME=N'''+@lokalizacjaData+'\'+ @database+'_FG_TEMP2.ndf'', SIZE = 524288KB , MAXSIZE =UNLIMITED, FILEGROWTH = 0)
LOG ON
( NAME =N'''+ @database+'_log'',FILENAME=N'''+@lokalizacjaLog+'\'+ @database+'_Log.ldf'', SIZE = 131072KB , MAXSIZE = 1024000KB , FILEGROWTH = 131072KB )
ALTER DATABASE '+ @database+' SET COMPATIBILITY_LEVEL = 140
ALTER DATABASE '+ @database+' SET RECOVERY FULL WITH NO_WAIT

'
print 'use '+ @database
print 'GO
'


Dariusz Brejnak

Od prawie trzydziestu lat jest pasjonatem informatyki, a zwłaszcza dziedzin dotyczących baz danych, hurtowni danych oraz ogólnie rozumianej tematyki BI. Jego druga pasja to fotografia http://dariuszbrejnak.pl