Definindo opções do banco de dados

Diversas opções de nível de banco de dados que determinam as características do banco de dados podem ser definidas para cada banco de dados. Essas opções são exclusivas de cada banco de dados e não afetam outros bancos de dados. Estas opções de banco de dados são definidas com valores padrão quando se cria um banco de dados e podem ser alteradas, usando a cláusula SET da instrução ALTER DATABASE. Além disso, o SQL Server Management Studio pode ser usado para definir a maioria dessas opções.

ObservaçãoObservação

Todas as configurações do servidor são definidas usando o procedimento armazenado do sistema sp_configure ou SQL Server Management Studio. Para obter mais informações, consulte Definindo opções de configuração do servidor. Configurações em nível de conexão são especificadas usando as instruções SET. Para obter mais informações, consulte Opções SET.

Para alterar os valores padrão de qualquer uma das opções do banco de dados para todos os bancos de dados criados recentemente, altere a opção do banco de dados apropriada no banco de dados modelo. Por exemplo, para que a configuração padrão da opção de banco de dados AUTO_CLOSE seja True para qualquer novo banco de dados criado posteriormente, defina a opção AUTO_CLOSE de model como True.

Após definir uma opção de banco de dados, um ponto de verificação que realiza modificações é automaticamente emitido para que as modificações entrem em vigor. Para obter mais informações, consulte CHECKPOINT (Transact-SQL).

Opções de banco de dados

As tabelas a seguir listam as opções de banco de dados definidas e seus valores padrão, quando um banco de dados for criado. Para obter uma descrição completa dessas opções, consulte ALTER DATABASE (Transact-SQL).

Opções automáticas

Controlam determinados comportamentos automáticos.

Opção

Descrição

Valor padrão

AUTO_CLOSE

Ao ser definida como ON, o banco de dados será desligado corretamente, e seus recursos serão liberados após a saída do último usuário. O banco de dados é reaberto automaticamente quando um usuário tenta usá-lo de novo.

Ao ser definida como OFF, o banco de dados permanecerá aberto após a saída do último usuário.

True para todos os bancos de dados quando é usado o SQL Server 2000 Desktop Engine ou o SQL Server Express, e False para todas as outras edições, independentemente do sistema operacional.

AUTO_CREATE_STATISTICS

Ao ser definida como ON, serão criadas, automaticamente, estatísticas nas colunas usadas em um predicado.

Ao ser definida como OFF, as estatísticas não serão criadas automaticamente, porém, poderão ser criadas manualmente.

True

AUTO_UPDATE_STATISTICS

Ao ser definida como ON, quaisquer estatísticas ausentes exigidas pela consulta para otimização serão criadas automaticamente durante a otimização da consulta.

Quando definidas como OFF, as estatísticas devem ser criadas manualmente. Para obter mais informações, consulte Usando estatísticas para melhorar o desempenho de consultas.

True

AUTO_SHRINK

Ao ser definida como ON, os arquivos do banco de dados serão candidatos à redução periódica. Arquivo de dados e arquivos de log podem ser reduzidos automaticamente através do SQL Server. AUTO_SHRINK reduzirá o tamanho do log de transações somente se o banco de dados estiver definido como modelo de recuperação SIMPLE ou se foi feito backup do log.

Ao ser definida como OFF, os arquivos do banco de dados não serão reduzidos automaticamente durante as verificações periódicas de espaço não usado.

False

Auto_Update_Statistics_Asynchronously

Quando True, atualiza as estatísticas de forma assíncrona.

False

Opções do cursor

Controlam comportamento do cursor e o escopo.

Opção

Descrição

Valor padrão

CURSOR_CLOSE_ON_COMMIT

Ao ser definida como ON, qualquer um dos cursores abrirá quando uma transação for confirmada ou quando uma transação revertida for fechada.

Ao ser definida como OFF, uma transação confirmada permanecerá aberta e uma transação revertida fechará qualquer cursor, exceto aqueles definidos como INSENSITIVE ou STATIC.

OFF

CURSOR_DEFAULT

Quando LOCAL for especificado e um cursor não for definido como GLOBAL ao ser criado, o escopo do cursor será local para o lote, o procedimento armazenado ou o gatilho nos quais o cursor foi criado. O nome de cursor é somente válido dentro desse escopo.

Quando GLOBAL for especificado e um cursor não será definido como LOCAL ao ser criado, o escopo do cursor será global para a conexão. O nome do cursor pode ser referenciado em qualquer procedimento armazenado ou lote executado pela conexão.

GLOBAL

Opções de disponibilidade de banco de dados

Controlam se o banco de dados fica online ou offline, quem pode conectar-se ao banco de dados e se o banco de dados fica no modo somente leitura.

Opção

Descrição

Valor padrão

OFFLINE | ONLINE | EMERGENCY

Quando OFFLINE for especificado, o banco de dados será fechado e desligado corretamente, além de ficar marcado como offline.

Quando ONLINE for especificado, o banco de dados será aberto e ficará disponível para uso.

Quando EMERGENCY for especificado, o banco de dados será marcado como READ_ONLY, o log será desabilitado e o acesso será limitado a membros da função de servidor fixa sysadmin.

ONLINE

READ_ONLY | READ_WRITE

Quando READ_ONLY for especificado, os usuários poderão ler dados do banco de dados, mas não poderão modificá-los.

Quando READ_WRITE for especificado, o banco de dados ficará disponível para operações leitura e gravação.

READ_WRITE

SINGLE_USER | RESTRICTED_USER | MULTI_USER

Quando SINGLE_USER for especificado, será permitido que se conecte um usuário de cada vez ao banco de dados. Todas as outras conexões de usuário serão interrompidas.

Quando RESTRICTED_USER for especificado, somente os membros da função de banco de dados fixa db_owner e das funções de servidor fixas dbcreator e sysadmin terão permissão para se conectar ao banco de dados, mas, isso não limitará seu número.

Quando MULTI_USER for especificado, será permitido que todos os usuários com permissões apropriadas se conectem ao banco de dados.

MULTI_USER

Opções de otimização de correlação de data

Controlam a opção date_correlation_optimization.

Opção

Descrição

Valor padrão

DATE_CORRELATION_OPTIMIZATION

Quando ON for especificado, o SQL Server mantém as estatísticas de correlação entre as duas tabelas do banco de dados que estiverem vinculadas por uma restrição FOREIGN KEY e possuírem colunas datetime.

Quando OFF for especificado, as estatísticas de correlação não serão mantidas.

OFF

Para obter mais informações, consulte Otimizando consultas que acessam colunas de data e hora correlacionadas.

Opções de acesso externo

Controlam se o banco de dados poderá ser acessado por recursos externos como objetos de outro banco de dados.

Opção

Descrição

Valor padrão

DB_CHAINING

Quando ON for especificado, o banco de dados poderá ser a fonte ou o destino de uma cadeia de propriedade do banco de dados.

Quando OFF for especificado, o banco de dados não poderá participar do encadeamento de propriedade do banco de dados.

OFF

TRUSTWORTHY

Quando estiver ON, os módulos de banco de dados (por exemplo, funções definidas pelo usuário ou procedimentos armazenados) que usam um contexto de representação poderão acessar recursos fora do banco de dados.

Quando OFF for especificado, os módulos de banco de dados em um contexto de representação não poderão acessar recursos fora do banco de dados.

TRUSTWORTHY será definido como OFF sempre que o banco de dados for anexado.

OFF

Opção de parametrização

Controla a opção de parametrização.

Opção

Descrição

Valor padrão

PARAMETERIZATION

Quando SIMPLE for especificado, as consultas serão parametrizadas com base no comportamento padrão do banco de dados.

Quando FORCED for especificado, o SQL Server parametrizará todas as consultas no banco de dados.

SIMPLE

Opções de recuperação

Controlam o modelo de recuperação para um banco de dados.

Opção

Descrição

Valor padrão

RECOVERY

Quando FULL for especificado, uma recuperação completa após uma falha de mídia será fornecida usando backups de log de transações. Se um arquivo de dados for danificado, a recuperação de mídia poderá recuperar todas as transações confirmadas.

Quando BULK_LOGGED for especificado, será fornecida uma recuperação após uma falha de mídia, combinando o melhor desempenho e a quantidade mínima do uso do espaço de log para certas operações em larga escala ou em massa.

Quando SIMPLE for especificado, será fornecida uma estratégia simples de backup, que usa um espaço de log mínimo.

FULL

PAGE_VERIFY

Quando CHECKSUM for especificado, o Mecanismo de Banco de Dados calculará uma soma de verificação nos conteúdos da página inteira e armazenará o valor no cabeçalho da página, quando uma página estiver gravada em disco. Quando a página é lida a partir do disco, a soma de verificação é recalculada e comparada ao valor da soma de verificação armazenado no cabeçalho da página.

Quando TORN_PAGE_DETECTION for especificado, um padrão de 2 bits específico para cada setor de 512 bytes na página de banco de dados de 8 quilobytes (KB) será salvo e armazenado no cabeçalho da página do banco de dados, quando a página for gravada em disco. Quando a página for lida pelo disco, os bits desativados armazenados no cabeçalho da página serão comparados às informações do setor da página real.

Quando NONE for especificado, a página do banco de dados não irá gerar um CHECKSUM ou um valor TORN_PAGE_DETECTION. O SQL Server não irá verificar uma soma de verificação ou uma página desativada durante uma leitura, mesmo se um CHECKSUM ou um valor TORN_PAGE_DETECTION estiver presente no cabeçalho da página.

CHECKSUM

Opções do Service Broker

Controlam as opções do Service Broker.

Opção

Descrição

Valor padrão

ENABLE_BROKER | DISABLE_BROKER | NEW_BROKER | ERROR_BROKER_CONVERSATIONS

Quando ENABLE_BROKER for especificado, o Service Broker será habilitado para o banco de dados especificado.

Quando ENABLE_BROKER for especificado, o Service Broker será desabilitado para o banco de dados especificado.

Quando NEW_BROKER for especificado, o banco de dados receberá um novo identificador do agente.

Quando ERROR_BROKER_CONVERSATIONS for especificado, as conversações no banco de dados receberão uma mensagem de erro quando o banco de dados for anexado.

ENABLE_BROKER

Opções de isolamento de instantâneo

Determinam o nível de isolamento da transação.

Opção

Descrição

Valor padrão

ALLOW_SNAPSHOT_ISOLATION

Quando ON for especificado, as transações podem especificar o nível de isolamento da transação SNAPSHOT. Ao executar uma transação no nível de isolamento SNAPSHOT, todas as instruções consultam um instantâneo de dados, se houver um no início da instrução.

Quando OFF for especificado, as transações não poderão especificar o nível de isolamento da transação SNAPSHOT.

OFF

READ_COMMITTED_SNAPSHOT

Quando ON for especificado, as transações que especificam o nível de isolamento READ COMMITTED usam o controle de versão de linha em vez do bloqueio. Quando uma transação é executada no nível de isolamento READ COMMITTED, todas as instruções consultam um instantâneo de dados, se houver um no início da instrução.

Quando OFF é especificado, as transações que especificam o nível de isolamento READ COMMITTED usam o bloqueio.

Ao definir a opção READ_COMMITTED_SNAPSHOT, somente a conexão que executa o comando ALTER DATABASE será permitida no banco de dados. Não deve haver nenhuma outra conexão aberta no banco de dados até que ALTER DATABASE seja encerrada. O banco de dados não precisa estar no modo de usuário único.

OFF

Opções SQL

Controlam as opções de conformidade ANSI.

Opção

Descrição

Valor padrão

ANSI_NULL_DEFAULT

Determina o valor padrão, NULL ou NOT NULL, de uma coluna, tipo de dados de alias ou tipo de dados CLR definido pelo usuário para as quais a nulidade não é definida explicitamente nas instruções CREATE TABLE ou ALTER TABLE.

Quando ON for especificado, o valor padrão será o NULL.

Quando OFF for especificado, o valor padrão será NOT NULL.

OFF

ANSI_NULLS

Quando ON for especificado, todas as comparações para um valor nulo serão avaliadas como UNKNOWN.

Quando OFF for especificado, as comparações de valores não UNICODE com um valor nulo serão avaliadas como TRUE se ambos os valores forem NULL.

OFF

ANSI_PADDING

Quando definida como ON, os espaços em branco à direita nos valores de caracteres inseridos nas colunas varchar ou nvarchar e os zeros à direita nos valores binários inseridos nas colunas varbinary não serão cortados. Os valores não são preenchidos com o tamanho da coluna.

Quando definida como OFF, os espaços em branco à direita (para varchar ou nvarchar) e os zeros (para varbinary) serão cortados. Essa configuração afeta somente a definição de colunas novas.

As colunas char e binary que permitem valores nulos serão convertidas ao tamanho da coluna quando ANSI_PADDING for definido em ON, mas os espaços em branco à direita e os zeros serão cortados quando ANSI_PADDING for definido em OFF. As colunas char e binary que não permitem valores nulos serão sempre convertidas ao tamanho da coluna.

OFF

ANSI_WARNINGS

Quando ON for especificado, erros ou avisos serão emitidos quando condições como “divisão por zero” ou “valores nulos” aparecerem em funções de agregação.

Quando OFF for especificado, nenhum aviso será emitido e os valores nulos serão retornados quando condições como “dividir por zero” ocorrerem.

OFF

ARITHABORT

Quando ON for especificado, uma consulta será finalizada quando um estouro ou erro de divisão por zero ocorrer durante a execução da consulta.

Quando OFF for especificado, uma mensagem de aviso será exibida quando um desses erros ocorrer, mas a consulta, lote ou transação continuará a processar como se nenhum erro tivesse ocorrido.

OFF

CONCAT_NULL_YIELDS_NULL

Quando ON for especificado, o resultado de uma operação de concatenação será NULL quando ambos os operandos forem NULL.

Quando OFF for especificado, o valor nulo será tratado como uma cadeia de caracteres vazia.

OFF

QUOTED_IDENTIFIER

Quando ON for especificado, as aspas duplas poderão ser usadas para incluir identificadores delimitados.

Quando OFF for especificado, os identificadores não poderão estar entre aspas e deverão seguir todas as regras de identificadores Transact-SQL.

OFF

NUMERIC_ROUNDABORT

Quando ON for especificado, um erro será gerado quando ocorrer perda de precisão em uma expressão.

Quando OFF for especificado, perdas de precisão não gerarão mensagens de erro e o resultado será arredondado à precisão da coluna ou variável que armazena o resultado.

OFF

RECURSIVE_TRIGGERS

Quando ON for especificado, o acionamento recursivo de gatilhos AFTER será permitido.

Quando OFF for especificado, apenas o acionamento recursivo direto dos gatilhos AFTER não será permitido.

OFF

Para alterar opções de banco de dados