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çã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