none
renumerar tabla a partir del minimo numero existete RRS feed

  • Pregunta

  • Hola buenos días

    me urge renumerar una tabla en sql server, alguien me puede ayudar por favor?

    es asi:

    en la tabla xx  tengo lo siquiente:

    campo:numero

    1

    2

    3

    5

    4

    7

    13

    11

    etc.

    los quiero ordenar en la tabla 

    GRACIAS


    viernes, 15 de noviembre de 2019 16:08

Todas las respuestas

  • los quiero ordenar en la tabla 

    ¿A qué le llamas "ordenar" la tabla? Las tablas en una base de datos relacional no tienen orden. El sistema es libre de devolverte los datos en cualquier orden arbitrario cada vez que los consultes.

    En la práctica, si no pones ningún "where" y la tabla tiene un índice clustered (lo tiene de forma predeterminada si tiene clave primaria) entonces te devuelve los registros en el orden del índice. Pero no tiene la obligación de hacerlo; por ejemplo, si en algún momento se distribuyen los datos en varios ejes o si se paraleliza la consulta, podría seguir un orden diferente.

    La única forma fiable de "ordenar" la tabla es poner un "order by" en todas las consultas en las que se requiera que los datos se devuelvan en un orden concreto.

    viernes, 15 de noviembre de 2019 16:36
  • perdon, quise decir, renumerar en campo numero
    viernes, 15 de noviembre de 2019 17:13
  • puedas utilizar esto para remunerar  realizando un udpate de tu campo

    https://docs.microsoft.com/en-us/sql/t-sql/functions/row-number-transact-sql?view=sql-server-ver15

    Bader Molinas 

    Paraguay

    viernes, 15 de noviembre de 2019 19:01
  • proba esto amigo

    declare @tabla table
        (
          id int ,
          nombre varchar(10)
        )
    insert  into @tabla
            ( id, nombre )
    values  ( 1, -- id - int
              'A'  -- nombre - varchar(10)
              )
    
    
    insert  into @tabla
            ( id, nombre )
    values  ( 3, -- id - int
              'B'  -- nombre - varchar(10)
              )
    insert  into @tabla
            ( id, nombre )
    values  ( 5, -- id - int
              'C'  -- nombre - varchar(10)
              )
    insert  into @tabla
            ( id, nombre )
    values  ( 6, -- id - int
              'D'  -- nombre - varchar(10)
              )
    insert  into @tabla
            ( id, nombre )
    values  ( 7, -- id - int
              'E'  -- nombre - varchar(10)
              )
              
    update  @tabla
    set     id = idNew
    from    ( select    row_number() over ( order by id asc ) as idNew ,
                        *
              from      @tabla as t         
            ) n
    where   [@tabla].id = n.id
    
    select * from @tabla as t

    Resultado antes del udpate

    id nombre
    1 A
    3 B
    5 C
    6 D
    7 E

    Resultado NEW

    id nombre
    1 A
    2 B
    3 C
    4 D
    5 E

    Bader Molinas 

    Paraguay



    viernes, 15 de noviembre de 2019 19:09