Erro ao executar comando SQL Server 2008
Olá pessoal estou com um problema já faz um tempo.
Preciso rodar o seguinte script, mas não estou conseguindo pois esta dando um seguinte erro.
Script: UPDATE sys.columns SET system_type_id=61,user_type_id=61,max_length=8,precision=23,scale=3,is_nullable=1 WHERE system_type_id=42
Erro: Ad hoc updates to system catalogs are not allowed.
Já pesquisei e fiz de tudo e não encontrei uma saida.
Peço que me ajudem porfavor.
Já habilitei o DAC e executei dentro dele mas não funciona.
O que quero fazer é alterar todos os campos de um banco de dados que são do tipo decimal para o float.
Preciso rodar o seguinte script, mas não estou conseguindo pois esta dando um seguinte erro.
Script: UPDATE sys.columns SET system_type_id=61,user_type_id=61,max_length=8,precision=23,scale=3,is_nullable=1 WHERE system_type_id=42
Erro: Ad hoc updates to system catalogs are not allowed.
Já pesquisei e fiz de tudo e não encontrei uma saida.
Peço que me ajudem porfavor.
Já habilitei o DAC e executei dentro dele mas não funciona.
O que quero fazer é alterar todos os campos de um banco de dados que são do tipo decimal para o float.
Daniel
Curtidas 0
Respostas
Emerson Nascimento
04/05/2021
https://www.mssqltips.com/sqlservertip/2875/how-to-allow-ad-hoc-updates-in-sql-server-system-catalogs/
opcao 1
GOSTEI 0
Chromusmaster
04/05/2021
O que quero fazer é alterar todos os campos de um banco de dados que são do tipo decimal para o float.
Mas se tu quer alterar é só fazer um query dinâmica que gera os alters para as tabelas e depois rodar esses alter's gerados pela query.
GOSTEI 0
Daniel
04/05/2021
https://www.mssqltips.com/sqlservertip/2875/how-to-allow-ad-hoc-updates-in-sql-server-system-catalogs/
opcao 1
Esse site já vi mas não resolveu.
GOSTEI 0
Daniel
04/05/2021
O que quero fazer é alterar todos os campos de um banco de dados que são do tipo decimal para o float.
Mas se tu quer alterar é só fazer um query dinâmica que gera os alters para as tabelas e depois rodar esses alter's gerados pela query.
Vdd. Já fiz isso mas a query retornar Un erro dizendo que o campo é dependente do outro.
GOSTEI 0
Chromusmaster
04/05/2021
O que quero fazer é alterar todos os campos de um banco de dados que são do tipo decimal para o float.
Mas se tu quer alterar é só fazer um query dinâmica que gera os alters para as tabelas e depois rodar esses alter's gerados pela query.
Vdd. Já fiz isso mas a query retornar Un erro dizendo que o campo é dependente do outro.
Você pode tentar fazer os alter usando o check constraint off:
-- Disable the constraints on a table called tableName:
ALTER TABLE tableName NOCHECK CONSTRAINT ALL
-- Execute the main alteration
ALTER TABLE tableName add column / change column.........
-- Re-enable the constraints on a table called tableName:
ALTER TABLE tableName WITH CHECK CHECK CONSTRAINT ALL
MAS MUITO CUIDADO! FAÇA ISSO PRIMEIRO EM BASE DE TESTES! SE AO FIZER ISSO O SISTEMA CONTINUAR FUNCIONANDO E NÃO QUEBRAR NADA FAÇA UM DUMP DA SUA BASE DE PRODUÇÃO E FAÇA NELA.
GOSTEI 0
Daniel
04/05/2021
O que quero fazer é alterar todos os campos de um banco de dados que são do tipo decimal para o float.
Mas se tu quer alterar é só fazer um query dinâmica que gera os alters para as tabelas e depois rodar esses alter's gerados pela query.
Vdd. Já fiz isso mas a query retornar Un erro dizendo que o campo é dependente do outro.
Você pode tentar fazer os alter usando o check constraint off:
-- Disable the constraints on a table called tableName:
ALTER TABLE tableName NOCHECK CONSTRAINT ALL
-- Execute the main alteration
ALTER TABLE tableName add column / change column.........
-- Re-enable the constraints on a table called tableName:
ALTER TABLE tableName WITH CHECK CHECK CONSTRAINT ALL
MAS MUITO CUIDADO! FAÇA ISSO PRIMEIRO EM BASE DE TESTES! SE AO FIZER ISSO O SISTEMA CONTINUAR FUNCIONANDO E NÃO QUEBRAR NADA FAÇA UM DUMP DA SUA BASE DE PRODUÇÃO E FAÇA NELA.
sua dica é otima, mas deu o seguinte erro
eu rodei: ALTER TABLE agente NOCHECK CONSTRAINT DF__agente__taxa__108B795B
erro:
Msg 11415, Nível 16, Estado 1, Linha 1
O objeto 'DF__agente__taxa__108B795B' não pode ser desabilitado ou habilitado. Esta ação se aplica apenas a chaves estrangeiras e restrições de verificação.
Msg 4916, Nível 16, Estado 0, Linha 1
Não foi possível ativar ou desativar a restrição. Veja os erros anteriores.
GOSTEI 0
Chromusmaster
04/05/2021
Você possui indices do tipo Unique nesta ou em outras tabelas?
GOSTEI 0
Daniel
04/05/2021
Você possui indices do tipo Unique nesta ou em outras tabelas?
Sim.
GOSTEI 0