Erro ao executar comando SQL Server 2008

SQL Server

SQL

Banco de Dados

Análise de dados

Auditoria de Dados

04/05/2021

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.
Daniel

Daniel

Curtidas 0

Respostas

Emerson Nascimento

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

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

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

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

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

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

Chromusmaster

04/05/2021

Você possui indices do tipo Unique nesta ou em outras tabelas?
GOSTEI 0
Daniel

Daniel

04/05/2021

Você possui indices do tipo Unique nesta ou em outras tabelas?


Sim.
GOSTEI 0
POSTAR