4922: ALTER TABLE ALTER COLUMN failed because one or more objects access this column (ALTER TABLE ALTER COLUMN falhou porque um ou mais objetos acessam esta coluna)
SQL ServerO que significa?
Você tentou alterar o tipo/propriedade de uma coluna, mas objetos que dependem dela (índice, constraint, coluna computada, estatísticas, view com schema binding etc.) impediram a alteração. A coluna não pode ser alterada até que as dependências sejam removidas.
Por que acontece?
A coluna é usada em um índice, em uma constraint PRIMARY KEY/UNIQUE/CHECK/DEFAULT, na expressão de uma coluna computada, em uma view/função definida WITH SCHEMABINDING ou em um objeto de estatísticas. Uma alteração de tipo/tamanho invalidaria esses objetos, por isso o ALTER é rejeitado.
Como resolver
Primeiro encontre os objetos dependentes e remova-os ou desabilite-os temporariamente, altere a coluna e depois recrie-os. Consulte sys.sql_expression_dependencies e sys.indexes/sys.default_constraints para ver as dependências. Ordem típica: DROP CONSTRAINT/INDEX -> ALTER COLUMN -> CREATE novamente. Para views com schema binding, remova temporariamente o SCHEMABINDING e adicione-o de volta.
Mais entradas deste banco
- 15023User already exists in the current database (o usuário já existe no banco atual)
- 18452Login failed. The login is from an untrusted domain and cannot be used with Windows authentication (falha no login; o login vem de um domínio não confiável e não pode ser usado com autenticação do Windows)
- 605Attempt to fetch logical page belongs to a different allocation unit (a página lógica solicitada pertence a outra allocation unit)
- 7202Could not find server 'name' in sys.servers (o servidor não foi encontrado em sys.servers)
- 40501The service is currently busy. Retry the request after 10 seconds (o serviço está ocupado; repita a requisição após 10 segundos)
- 8645A time out occurred while waiting for memory resources to execute the query (timeout aguardando recursos de memória para executar a consulta)
- 8651Could not perform the operation because the requested memory grant was not available (não foi possível executar a operação porque o memory grant solicitado não estava disponível)