1. CRIAÇÃO E CONFIGURAÇÃO DE BASE DE DADOS
Sintaxe Genérica para Criação de Base de Dados
CREATE DATABASE database_name
[ ON
{ [ PRIMARY ] [ <filespec> [ ,...n ]
[ , <filegroup> [ ,...n ] ]
[ LOG ON { <filespec> [ ,...n ] } ] }
]
[ COLLATE collation_name ]
[ WITH <external_access_option> ]
]
[;]
<filespec> ::=
{
(
NAME = logical_file_name ,
FILENAME = { 'os_file_name' | 'filestream_path' }
[ , SIZE = size [ KB | MB | GB | TB ] ]
[ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
[ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ]
) [ ,...n ]
}
<filegroup> ::=
{
FILEGROUP filegroup_name [ CONTAINS FILESTREAM ] [ DEFAULT ]
<filespec> [ ,...n ]
}
<external_access_option> ::=
{
[ DB_CHAINING { ON | OFF } ]
[ , TRUSTWORTHY { ON | OFF } ]
}
database_name
Único numa instância
Segue a regra de identificadores:
Primeiro carácter deve ser letra de a-z | A-Z, _, @, #
Caracteres subsequentes podem ser letra a-z | A-Z, números, _, @, #, $
Não pode ser uma palavra reservada
Espaço entre palavras não é permitido ou caracteres especiais
Máximo de 128 caracteres
2. ON
Indica que os ficheiros de dados e unidades de armazenamento da base de dados são explicitamente
declarados. Isto significa que ao usar ON deve-se obrigatoriamente usar <filespec>.
PRIMARY
Indica que os ficheiros de dados e unidades de armazenamento definidos em <filespec> definem o ficheiro
primário da base de dados. Caso não seja usado, o primeiro ficheiro de dados definido na lista torna-se o
ficheiro primário.
LOG ON
Indica que os ficheiros de dados e unidades de armazenamento definidos em <filespec> definem o ficheiro de
log da base de dados. Caso não seja usado, é automaticamente criado um ficheiro de log cujo tamanho é 25%
do tamanho total de todos os ficheiros de dados da base de dados ou 512 KB.
<filespec>
Controla as propriedades dos ficheiros e ou unidades de armazenamento da base de dados.
NAME logical_file_name
Indica o nome lógico do ficheiro. Caso FILENAME seja especificado, a palavra NAME é de carácter obrigatório.
logical_file_name não pode PRIMARY e deve seguir a regra para os identificadores.
FILENAME { 'os_file_name' | 'filestream_path' }
Especifica o caminho (path) físico para armazenamento dos ficheiros de dados.
'os_file_name'
O ficheiro deve existir antes da criação da base de dados. Este pode estar localizado num disco local
ou num disco localizado noutro servidor da rede. Caso seja usado UNC (Universal Naming Convetion)
para dar nome ao ficheiro SIZE, MAXSIZE, and FILEGROWTH não pode ser usado.
Exemplo de UNC: Shared1_svrShared1WGroupsNetworkOrders.ndf
'filestream_path'
Especifica a localização de ficheiros to tipo FILESTREAM. O directório aonde se prevê estarem
localizados os ficheiros não deve existir. Só pode existir um <filespec> para este ficheiros do tipo
FILESTREAM e os parâmetros SIZE, MAXSIZE, and FILEGROWTH não devem ser usados.
SIZE size
Define o tamanho do ficheiro.
Caso não seja especificado para o ficheiro primário (PRIMARY) ganha automaticamente o tamanho do ficheiro
primário da base de dados model. Para o mesmo caso, os ficheiros secundários (ficheiros de log, etc) ganham
um tamanho de 1MB. O tamanho deve ser do tipo inteiro e as unidades podem ser KB (kilobyte), MB
(megabyte), GB (gigabyte) ou TB (terabyte).
MAXSIZE max_size
Indica o tamanho máximo do ficheiro.
3. UNLIMITED
Indica que o ficheiro não possui um tamanho máximo, podendo este crescer até a unidade de armazenamento
estar cheia.
FILEGROWTH growth_increment
Especifica o incremento automatico para o ficheiro. growth_increment pode ser KB (kilobyte), MB (megabyte),
GB (gigabyte) ou TB (terabyte) ou %.
Caso o valor 0 (zero) seja usado o crescimento automático é desabilitado
Caso FILEGROWTH não seja usado o crescimento para o ficheiro primário é de 1MB, e para os ficheiros de log é
de 10%.
<filegroup>
Especifica o grupo de ficheiros de uma base de dados.
FILEGROUP filegroup_name
Indica o nome lógico para o grupo de ficheiros. filegroup_name deve único numa base de dados, não pode ser
PRIMARY ou PRIMARY_LOG, e deve seguir a regra para os identificadores.
CONTAINS FILESTREAM
Indica que o grupo de ficheiros armazena ficheiros do tipo FILESTREAM largos (exemplos: imagens
com tamanho grande).
DEFAULT
Indica que este é o grupo de ficheiros default da base de dados.
COLLATE collation_name
Define o tipo de Collation a ser usado na base de dados. Existem dois grupos de collation: Windows Collation
ou SQL Server Collation. Caso não seja especificado é atribuído o collation default da instância da base de
dados.
Exemplo de collations: Latin1_General_CS_AS_KS_WS, Traditional_Spanish_ci_ai.
<external_access_option>
Controla o acesso externo de e para a base de dados.
DB_CHAINING { ON | OFF }
Caso seja ON a base de dados pode partilhar recursos com outras base de dados configuradas no
mesmo ciclo de partilha. Se for OFF, acontece o contrário.
4. TRUSTWORTHY { ON | OFF }
Caso seja ON, objectos de base de dados (views, funções, procedimentos) podem aceder recursos
usando personalização (impersonation) fora da base de dados onde foram criados. Se for OFF,
acontece o contrário.
Exemplos
1. Criação de base de dados com um ficheiro primário definido de forma implícita (repare que não foi usada a
palavra PRIMARY) e um ficheiro de log (salelog.ldf).
USE master;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = 'C:Program FilesMicrosoft SQL
ServerMSSQL10_50.MSSQLSERVERMSSQLDATAsaledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5)
LOG ON
( NAME = Sales_log,
FILENAME = 'C:Program FilesMicrosoft SQL
ServerMSSQL10_50.MSSQLSERVERMSSQLDATAsalelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB);
GO
2. Criação de base de dados com um ficheiro primário definido de forma explícita (com o nome Arch1), 2
ficheiros secundários (com os nomes Arch2 e Arch2) e um ficheiro de log (Archlog1).
USE master;
GO
CREATE DATABASE Archive
6. SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5),
FILEGROUP SalesGroup2
(NAME = SGrp2Fi1_dat,
FILENAME = 'D:SalesDataSG2Fi1dt.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5),
(NAME = SGrp2Fi2_dat,
FILENAME = 'D:SalesDataSG2Fi2dt.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5)
LOG ON
(NAME = Sales_log,
FILENAME = 'E:SalesLogsalelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB);
GO
4. Criação de base de dados especificando Collation e Acesso Externo
USE master;
GO
IF DB_ID (N'MyOptionsTest') IS NOT NULL
DROP DATABASE MyOptionsTest;
GO
CREATE DATABASE MyOptionsTest
COLLATE French_CI_AI
WITH TRUSTWORTHY ON, DB_CHAINING ON;
GO
--Verifying collation and option settings.
SELECT name, collation_name, is_trustworthy_on, is_db_chaining_on
FROM sys.databases
WHERE name = N'MyOptionsTest';
GO