none
duda con secuencias en sqlserver 2012 RRS feed

  • Pregunta

  • compañeros, me comentan que existen instrucciones de sqlserver en la version 2012 que se utilizan para sincronizar los consecutivos de tablas en base de datos, generan una secuencia de numeros unicos, pero según entiendo se pueden ejecutar al realizar un select a una tabla; de ser así es posible perder dicha secuencia al actulizar cierto campo de mi tabla que desface el control de secuencia en la base? como se podría reestablecer dicho valor sin afectar a las tablas?

    La programacion en Microsoft cada ves se torna inalcanzable


    lunes, 20 de febrero de 2017 21:25

Respuestas

  • Como buscar objetos de tipo SECUENCIA? 

    select *
    from sys.sequences

    Ahora, quieres ver que tablas afectan? no es posible, los objetos tipo SECUENCIA en su definición  no integran parte del nombre de una tabla dado que no son dependientes de las tablas a diferencia de las columnas con la propiedad IDENTITY. Los objetos SECUENCIA son utilizados en las consultas de inserción y solo son invocados para obtener el número siguiente. Quieres determinar que tablas la utilizan? Creo que debes revisar el código.


    SERGIO SANCHEZ ARIAS
    facebook twitter blogger google

    lunes, 20 de febrero de 2017 22:21

Todas las respuestas

  • Hola:

    A que instrucciones te refieres? ROW_NUMBER , RESEED ? A que te refieres con "sincronizas los consecutivos de tablas" ?? sincronizar con que? Secuencia es un objeto de bases de datos, es posible que estes confundiendo los conceptos, puedes explicarme un poco más que es lo que deseas?


    SERGIO SANCHEZ ARIAS
    facebook twitter blogger google

    lunes, 20 de febrero de 2017 21:43
  • alfonso_tecnicopa,

    ¿Sincronizar? ¿En base a que? ¿Te refieres a SEQUENCE

    {...} de ser así es posible perder dicha secuencia al actulizar cierto campo de mi tabla que desface el control de secuencia en la base?

    No entiendo.

    Alfonso, dale algo de detalle a tu requerimiento, en lo personal no entiendo el contexto ni lo que requieres.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    lunes, 20 de febrero de 2017 21:54
  • Está hablando de sequence, el que hubiera sido el sucesor aunque sin mucho existo del identity, un select no deberíade incrementar el valor de una secuencias, pero al igual que un identity un rollback o alta concurrencia pueden evitar que existe un consecutivo ordenado y existan huecos, esto es porque tanto como identity como sequence no garantizan el orden sino que sea siempre un número creciente.
    lunes, 20 de febrero de 2017 21:55
  • alfonso_tecnicopa,

    ¿Sincronizar? ¿En base a que? ¿Te refieres a SEQUENCE

    {...} de ser así es posible perder dicha secuencia al actulizar cierto campo de mi tabla que desface el control de secuencia en la base?

    No entiendo.

    Alfonso, dale algo de detalle a tu requerimiento, en lo personal no entiendo el contexto ni lo que requieres.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    ok, disculpa sucede que se manejan secuencias de sqlserver en nuestra base de datos y me comentan que se utilizan para generar expedientes únicos en la base,sin embargo accidentalmente se modificó o se borró esa secuencia(almacenada en la base) al realizar un update manualmente en una tabla que se supone utiliza secuencia activada desde alguna parte del sistema,es decir desde codigo se invocan ciertos stores que hacen generar numeros de secuencia que relacionan varias tablas, al parecer para llevar un control entre expedientes de servidores distintos

    La programacion en Microsoft cada ves se torna inalcanzable

    lunes, 20 de febrero de 2017 22:05
  • Hola:

    A que instrucciones te refieres? ROW_NUMBER , RESEED ? A que te refieres con "sincronizas los consecutivos de tablas" ?? sincronizar con que? Secuencia es un objeto de bases de datos, es posible que estes confundiendo los conceptos, puedes explicarme un poco más que es lo que deseas?


    SERGIO SANCHEZ ARIAS
    facebook twitter blogger google

    creo me expliqué mal, el administrador de la base, ejecutó previamente "create secuence  ........."  para llevar control de registros entre dos o mas bases de datos en distinto servidor, pero ahora me interesa saber si así como se puede detectar trigers en una base, hay forma de detectar secuencias y ver a que tablas afectan

    gracias


    La programacion en Microsoft cada ves se torna inalcanzable


    lunes, 20 de febrero de 2017 22:10
  • Como buscar objetos de tipo SECUENCIA? 

    select *
    from sys.sequences

    Ahora, quieres ver que tablas afectan? no es posible, los objetos tipo SECUENCIA en su definición  no integran parte del nombre de una tabla dado que no son dependientes de las tablas a diferencia de las columnas con la propiedad IDENTITY. Los objetos SECUENCIA son utilizados en las consultas de inserción y solo son invocados para obtener el número siguiente. Quieres determinar que tablas la utilizan? Creo que debes revisar el código.


    SERGIO SANCHEZ ARIAS
    facebook twitter blogger google

    lunes, 20 de febrero de 2017 22:21
  • Saludos

    Aqui esta una contribución que tiene lo que buscas

    https://raresql.com/2012/10/24/sql-server-2012-list-of-all-sequences-available-in-the-database/

    Ahora bien sino lo puedes ver en la carpeta de programmatically > sequence

    lunes, 20 de febrero de 2017 22:30
  • Está hablando de sequence, el que hubiera sido el sucesor aunque sin mucho existo del identity, un select no deberíade incrementar el valor de una secuencias, pero al igual que un identity un rollback o alta concurrencia pueden evitar que existe un consecutivo ordenado y existan huecos, esto es porque tanto como identity como sequence no garantizan el orden sino que sea siempre un número creciente.
    cierto,lo que pasa es que desconociendo yo la instrucción que genera la secuencia, la ejecuté pensando era un simple select 

    La programacion en Microsoft cada ves se torna inalcanzable

    miércoles, 22 de febrero de 2017 3:32