none
Como mudar tipo de dado (de char para numeric) sem perder os dados da coluna?

    Question

  • Tenho uma tabela onde a coluna peso está definida como char(7).No entanto eu preciso mudar esta coluna para numeric(5,3).O problema é que a coluna já tem cerca de 1186 registros.
    É possível fazer esta mudança sem perder os dados?

    Grata.
    Thursday, July 23, 2009 6:21 PM

Answers

  • Ola LiliD

    Primeiro se vc tiver algum dado com mais de 2 caracteres nesta coluna vai te dar um erro de overflow se vc nao tratar antes (12345 = 12.345), se tiver dados com mais de 5 ai overflow mesmo e se tiver dados não numericos na coluna.

    vc precisa tratar estes casos antes, veja exemplo
    create table #teste (coluna char(7))
    insert into #teste values('34.500')
    insert into #teste values('12')
    select * from #teste
    alter table #teste alter column coluna numeric(5,3)
    select * from #teste
    drop table #teste


    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    • Marked as answer by LiliD Friday, July 24, 2009 4:38 PM
    Thursday, July 23, 2009 6:46 PM
    Moderator

All replies

  • Ola LiliD

    Primeiro se vc tiver algum dado com mais de 2 caracteres nesta coluna vai te dar um erro de overflow se vc nao tratar antes (12345 = 12.345), se tiver dados com mais de 5 ai overflow mesmo e se tiver dados não numericos na coluna.

    vc precisa tratar estes casos antes, veja exemplo
    create table #teste (coluna char(7))
    insert into #teste values('34.500')
    insert into #teste values('12')
    select * from #teste
    alter table #teste alter column coluna numeric(5,3)
    select * from #teste
    drop table #teste


    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    • Marked as answer by LiliD Friday, July 24, 2009 4:38 PM
    Thursday, July 23, 2009 6:46 PM
    Moderator
  • Olá Marcelo,

    Era isso mesmo.Eu tinha dados com mais de 5 caracteres .
    Fiz as alterações e consegui alterar o tipo de dado com sucesso.

    Obrigada.
    Thursday, July 23, 2009 8:17 PM
  • LiliD,

    Obrigado pelo retorno, marque a resposta que atendeu para que possa ajudar outros usuario do forum

    Att.

    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    Friday, July 24, 2009 11:27 AM
    Moderator