none
Não consigo alterar tipo do campo RRS feed

  • Pergunta

  • Olá,

    Tenho uma série de tabelas nas quais os campos para valores estavam definidos como REAL ou FLOAT. Como em certos casos comecei a ter problemas de precisão preciso alterar estes campos para MONEY.

    Esta alteração vai ser feita em bases já carregadas e em produção.

    Estou usando a seguinte instrução para fazer estas alterações via programa :

    alter TABLE nome_da_tabela ALTER COLUMN nome_do_campo money

    Acontece que em certos campos estou tendo um erro do tipo :

    "The object DF_nome_da_tabela__nome_do_campo_0A8787 is dependent on column nome_da_coluna_que_estou_tentando_alterar'

    Não sei o que fazer...desliguei as constraints antes da operação e mesmo assim não roda...não sei que tipode de dependencia está me gerando problemas porque os campos que preciso alterar são de valores e não estão portanto relacionados a outras tabelas.

    Obrigado.





    sexta-feira, 24 de agosto de 2007 17:33

Respostas

  •  

    Segundo a mensagem, esse default é que está trancando a sua modificação... mesmo sendo um default pra colocar 0 no lugar de null.

     

     

    Abraço

    sexta-feira, 24 de agosto de 2007 19:09

Todas as Respostas

  •  

    esta base foi replicada ? de um sp_help na tabela para ver o que ela tem.

     

     

    Abs;

    sexta-feira, 24 de agosto de 2007 17:56
  • Oi

     

    Marcelo,

     

    A base não é replicada não....

    sexta-feira, 24 de agosto de 2007 18:24
  •  

    Olá!!!

     

    Pelo nome do objeto, isso está me parecendo ser um Default!! Veja nessa tabela, se não existe um default definido para esse campo. Se tiver, remova ele primeiro, faça a alteração e depois retorne a situação anterior.

     

     

    Abraço

    sexta-feira, 24 de agosto de 2007 18:35
  • Oi Alexandre,

     

    Mesmo sendo um default para criar o campo como ZERO ao invés de nulo ?

    sexta-feira, 24 de agosto de 2007 18:43
  •  

    Segundo a mensagem, esse default é que está trancando a sua modificação... mesmo sendo um default pra colocar 0 no lugar de null.

     

     

    Abraço

    sexta-feira, 24 de agosto de 2007 19:09
  • Rapaz....era isto mesmo !

    Que coisa !

    Agora vou precisar retirar os DEFAULTs programaticamente e depois recolocá-los.

    Obrigadíssmo !!!
    sexta-feira, 24 de agosto de 2007 19:59
  •  

    Olha... daria pra tentar fazer isso tudo através de script, usando as tabelas do sistema pra encontrar se tem algum default relacionado a coluna. Se for algo que você vai fazer até muitas vezes e em várias tabelas, até é interessante desenvolver um script para isso. Agora, se é algo que vai ser executado uma vez na vida e uma na morte, não vale a pena.

     

     

     

    Abraço

    sexta-feira, 24 de agosto de 2007 20:09
  • No meu caso tem que ser via programa mesmo porque são vários campos em várias instalações em produção de forma a que vale a pena gastar um tempo nisto porque as alterações ficarão mais confiáveis do que "na unha".

    Valeu.

    Um abraço.
    sexta-feira, 24 de agosto de 2007 21:18
  •  

    É, então vai ser a melhor alternativa. Tente buscar nas tabelas do sistema estas informações e montar os scripts necessários.

     

    Se precisar de uma ajuda, retorne que tentaremos lhe ajudar.

     

     

    Abraço

    domingo, 26 de agosto de 2007 07:10
  • Mike,

     

    Realmente fazer na unha é mais dificil, você deverá obter a relação das colunas que aceitam valores nulos em seu banco de dados, procure mais informações nas tables de sistema, syscolumns e sysobjects.

    segunda-feira, 27 de agosto de 2007 12:24