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.
Importante |
---|
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. |
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_dboptionretorna a configuração atual. 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 MicrosoftSQL 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.
Importante
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 AdventureWorks somente leitura.
USE master;
GO
EXEC sp_dboption 'AdventureWorks', 'read only', 'TRUE';
B. Desativando uma opção
O exemplo a seguir torna o banco de dados AdventureWorks gravável novamente.
USE master;
GO
EXEC sp_dboption 'AdventureWorks', 'read only', 'FALSE';