sp_dboption (Transact-SQL)

Exibe ou altera opções do banco de dados. Não use sp_dboption para modificar opções no banco de dados mestre ou no tempdb.

Observação importanteImportante

Esse recurso será removido na próxima versão do Microsoft SQL Server. Não utilize esse recurso em desenvolvimentos novos e modifique, assim que possível, os aplicativos que atualmente o utilizam. Em vez disso, use ALTER DATABASE. Para modificar opções do banco de dados associadas à replicação (publicação de mesclagem, publicado, assinar), use sp_replicationdboption.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

sp_dboption [ [ @dbname = ] 'database' ] 
    [ , [ @optname = ] 'option_name' ] 
    [ , [ @optvalue = ] 'value' ] 
[;]

Argumentos

  • [ @dbname= ] 'database'
    É o nome do banco de dados no qual definir a opção especificada. database é sysname, com um padrão de NULL.

  • [ @optname= ] 'option_name'
    É o nome da opção a ser definida. Não é necessário inserir o nome completo da opção. O SQL Server reconhece qualquer parte do nome que seja exclusiva. Insira o nome da opção entre aspas quando ela incluir espaços em branco embutidos ou for uma palavra-chave. Se esse parâmetro for omitido, sp_dboption relacionará as opções ativas. option_name é varchar(35), com um padrão de NULL.

  • [ @optvalue=] 'value'
    É a nova configuração de option_name. Se esse parâmetro for omitido, sp_dboption retornará à configuração atual. O value pode ser true, false, on, ou off. value é varchar(10), com um padrão de NULL.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Conjuntos de resultados

A tabela a seguir mostra o conjunto de resultados quando nenhum parâmetro for fornecido.

Nome da coluna

Tipo de dados

Descrição

Opções definíveis do banco de dados

nvarchar(35)

Todas as opções definíveis do banco de dados.

A tabela a seguir mostra o conjunto de resultados quando database for o único parâmetro fornecido.

Nome da coluna

Tipo de dados

Descrição

As opções a seguir são definidas:

nvarchar(35)

As opções definidas para o banco de dados especificado.

A tabela a seguir mostra o conjunto de resultados quando option_name for fornecido.

Nome da coluna

Tipo de dados

Descrição

OptionName

nvarchar(35)

Nome da opção.

CurrentSetting

char(3)

Se a opção está ativada ou desativada.

Se value for fornecido, sp_dboption não retornará um conjunto de resultados.

Comentários

A tabela a seguir relaciona o conjunto de opções através de sp_dboption. Para obter mais informações sobre cada opção, consulte Definindo opções do banco de dados.

Opção

Descrição

criar estatísticas automaticamente

Quando true, quaisquer estatísticas ausentes exigidas pela consulta para otimização são criadas automaticamente durante a otimização. Para obter mais informações, consulte CREATE STATISTICS (Transact-SQL).

atualizar estatísticas automaticamente

Quando true, quaisquer estatísticas desatualizadas exigidas pela consulta para otimização são criadas automaticamente durante a otimização. Para obter mais informações, consulte UPDATE STATISTICS (Transact-SQL).

fechamento automático

Quando true, o banco de dados é desligado corretamente e seus recursos são liberados depois do logoff do último usuário.

redução automática

Quando true, os arquivos de banco de dados são candidatos à redução automática periódica.

padrão nulo ANSI

Quando true, CREATE TABLE segue as regras de ISO para determinar se uma coluna permite valores nulos.

nulos ANSI

Quando true, todas as comparações com um valor nulo são avaliadas como UNKNOWN. Quando false, as comparações de valores não UNICODE com um valor nulo são avaliadas como TRUE se ambos os valores forem NULL.

avisos ANSI

Quando true, erros ou avisos são emitidos quando condições como "dividir por zero" ocorrem.

arithabort

Quando true, um estouro ou erro de divisão por zero causa o encerramento da consulta ou lote. Se o erro ocorrer em uma transação, a transação será revertida. Quando false, uma mensagem de aviso será exibida, mas a consulta, lote ou transação continuará como se nenhum erro tivesse ocorrido.

nulo concatenado gera nulo

Quando true, se qualquer operando em uma operação de concatenação for NULL, o resultado será NULL.

fechar cursor ao confirmar

Quando true, quaisquer cursores abertos quando uma transação for confirmada ou revertida serão fechados. Quando false, tais cursores permanecerão abertos quando uma transação for confirmada. Quando false, reverter uma transação fechará quaisquer cursores, exceto os definidos como INSENSITIVE ou STATIC.

para uso apenas do dbo

Quando true, somente o proprietário do banco de dados poderá usar o banco de dados.

padronizar para cursor local

Quando true, as declarações de cursor definem o padrão como LOCAL.

publicação de mesclagem

Quando true, o banco de dados pode ser publicado para uma replicação de mesclagem.

roundabort numérico

Quando true, um erro é gerado quando ocorre perda de precisão em uma expressão. Quando false, perdas de precisão não geram mensagens de erro e o resultado é arredondado à precisão da coluna ou variável que armazena o resultado.

offline

Quando true (on), o banco de dados está offline. Quando false (off), o banco de dados está online.

publicado

Quando true, o banco de dados pode ser publicado para uma replicação.

identificador citado

Quando true, as aspas duplas podem ser utilizadas para delimitar identificadores.

somente leitura

Quando true, os usuários só podem ler dados no banco de dados. Os usuários não podem modificar os dados ou objetos de banco de dados; porém, o próprio banco de dados pode ser excluído usando a instrução DROP DATABASE. O banco de dados não poderá estar em uso quando um novo value para a opção somente leitura for especificada. O banco de dados mestre é a exceção e só o administrador do sistema pode usar o mestre enquanto a opção somente leitura estiver sendo definida.

Gatilhos recursivos

Quando true, habilita o acionamento recursivo dos gatilhos. Quando false, impede somente recursão direta. Para desabilitar a recursão indireta, defina a opção de servidor nested triggers como 0 usando sp_configure.

select into/bulkcopy

A partir do Microsoft SQL Server 2000, se o modelo de recuperação do banco de dados estiver definido atualmente como FULL, o uso da opção select into/bulkcopy redefine o modelo de recuperação como BULK_LOGGED. O modo adequado de alterar o modelo de recuperação é usar a cláusula SET RECOVERY da instrução ALTER DATABASE.

usuário único

Quando true, somente um usuário pode acessar o banco de dados de cada vez.

assinar

Quando true, o banco de dados pode ser assinado para uma publicação.

detecção de página interrompida

Quando true, podem ser detectadas páginas incompletas.

truncar log no ponto de verificação

Quando true, um ponto de verificação trunca a parte inativa do log quando o banco de dados estiver em modo de truncamento de log. Essa é a única opção que você pode definir para o banco de dados mestre.

Observação importanteImportante
A partir do SQL Server 2000, a definição da opção trunc. log on chkpt. como true define o modelo de recuperação do banco de dados como SIMPLE. A definição da opção como false define o modelo de recuperação como FULL.

O proprietário de banco de dados ou administrador de sistema pode definir ou desativar opções específicas de banco de dados para todos os novos bancos de dados executando sp_dboption no banco de dados modelo.

Depois da execução de sp_dboption, um ponto de verificação será executado no banco de dados para o qual a opção foi alterada. Isso faz com que a alteração seja implementada imediatamente.

sp_dboption altera as configurações de um banco de dados. Use sp_configure para alterar configurações do nível de servidor e a instrução SET para alterar configurações que afetam só a sessão atual.

Permissões

Exibir a lista completa de opções de banco de dados e seus valores atuais requer associação na função pública. Alterar o valor de uma opção de banco de dados requer associação na função fixa db_owner do banco de dados.

Exemplos

A. Definindo um banco de dados como somente leitura

O exemplo a seguir torna o banco de dados AdventureWorks2008R2 somente leitura.

USE master;
GO
EXEC sp_dboption 'AdventureWorks2008R2', 'read only', 'TRUE';

B. Desativando uma opção

O exemplo a seguir torna o banco de dados AdventureWorks2008R2 gravável novamente.

USE master;
GO
EXEC sp_dboption 'AdventureWorks2008R2', 'read only', 'FALSE';