ID do artigo: 301292 - Última revisão: terça-feira, 20 de dezembro de 2005 - Revisão: 5.3

OPÇÃO SET considerações com DBCC índices em colunas computadas

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sintomas

DBCC CHECKDB, DBCC DBREINDEX e DBCC CHECKTABLE podem falhar com a seguinte mensagem de erro se o banco de dados contém uma tabela que tem um índice em uma coluna calculada:
DBCC falhou, pois as seguintes opções SET têm configurações incorretas: 'QUOTED_IDENTIFIER, ARITHABORT'.

Mais Informações

Esse comportamento é por design.

DBCC CHECKDB, DBREINDEX e CHECKTABLE requerem as seguintes opções SET se existir um índice em uma coluna calculada no banco de dados ou tabela:
  • ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER, ANSI_NULLS, ANSI_PADDING e ANSI_WARNINGS deve ser definida como ON.
  • NUMERIC_ROUNDABORT deve ser definido para desativado.
A mensagem de erro é mais provável de ocorrer se o CHECKDB ou CHECKTABLE for agendado de uma tarefa do SQL Server Agent ou de uma verificação de integridade em um plano de manutenção de banco de dados. Isso ocorre porque por padrão o SQL Server Agent não define QUOTED_IDENTIFIER ou ARITHABORT. Para agendar um DBCC CHECKTABLE ou CHECKDB integridade verificar no banco de dados, você deve criar um trabalho de agente do SQL Server e o comando Transact-SQL você deve adicionar o opções SET necessários como no exemplo a seguir.
SET ARITHABORT ON
SET QUOTED_IDENTIFIER ON
DBCC CHECKTABLE(mytable)
go
				
aqui está um script de exemplo que descrevem como executar DBCC DBREINDEX em todo o banco de dados.
SET ARITHABORT ON 
SET QUOTED_IDENTIFIER ON 
 
use MyDatabase  -- CHANGE THE DATABASE NAME
go 
declare @tabname sysname 
declare @dbstring varchar(300) 
declare @exec_string varchar(300) 
 
declare tabDBCC cursor for select table_name from information_schema.tables where table_type = 'base table' 
 
open tabDBCC 
fetch next from tabDBCC into @tabname 
 
select @dbstring = DB_NAME() 
print 'Starting DBCC DBREINDEX for database ' + upper(@dbstring) 
 
while (@@fetch_status = 0) 
  begin 
    print 'Reindexing table ' + upper(@tabname) 
    select @exec_string = 'dbcc dbreindex ([' + @tabname + '])' 
    exec(@exec_string) 
    fetch next from tabDBCC into @tabname 
  end 
close tabDBCC 
deallocate tabDBCC 
 
print 'Finished DBCC DBREINDEX for database ' + upper(@dbstring) go
Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
902388  (http://support.microsoft.com/kb/902388/ ) Identificação do evento: 208 pode ser registrado e uma mensagem de erro "Falha de DBCC" é registrada quando você tenta usar o Database Maintenance Plan Wizard para criar um plano de manutenção no SQL Server 2000

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbmt kbprb KB301292 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 301292  (http://support.microsoft.com/kb/301292/en-us/ )