none
Como Evitar Datos Duplicado en SQL Server RRS feed

  • Pregunta

  • Hola que tal buen día, tengo un problema, les cuento:

    Necesito hacer una validación por que en el lugar en donde trabajo al momento de que están realizando una factura a algún cliente deja poner artículos repetidos (lo cual ya no es posible con la nueva versión de facturación, al menos en mi caso no) el problema es cuando son mas de 20 artículos y hay que buscar de uno en uno cual es el que esta duplicado. 

    La tabla con la que trabajo se Llama ventaD y como clave primaria tiene el ID ( que es el folio que se le da internamente a la factura) en teoría ese folio no debe contener artículos repetidos  que es otra de las columnas que tiene la tabla, ARTICULO. el código que llevo maso menos es este:

    IF @Ok IS NULL AND @Mov = 'Factura' AND @Accion IN ('AFECTAR', 'VERIFICAR') AND @Estatus = 'SIN AFECTAR'
    IF NOT EXISTS( SELECT ID FROM VentaD WHERE ID = @ID)  Aquí es donde me trabo, las                                          condiciones que pongo para que no se duplique el articulo no me funcionan, alguien podría                                        ayudarme, se los agradecería mucho.



    • Editado emi_06 miércoles, 24 de enero de 2018 16:54
    miércoles, 24 de enero de 2018 16:51

Respuestas

  • En primer lugar yo empezaria por usar una validacion a nivel declartivo, es decir, crea una UNIQUE CONSTRAINT sobre las columnas o combinaciones de las mismas que requieres unicidad, una vez hayas hecho esto, entonces a nivel de la programación puedes tener una función que te retorne un true o false basado en los parametros de entrada y de esta forma puedes verificar antes de insertar dicha fila en la tabla de tu BBDD.

    "Oh, the wind, the wind is blowing,through the graves the wind is blowing,Freedom soon will come; then well come from the shadows".The Partisan(Leonard Cohen) Email: me[at]geohernandez.net Blog:www.geohernandez.net

    miércoles, 24 de enero de 2018 16:54
  • tendrias que validar que el ID del articulo no se duplique y no el ID del folio

    if not exists(select 1 from ventaD where IdArticulo = @IdArticulo and Id = @ID)

    Begin

         insert into ventaD() values()

    End


    Att. Franklin Andino


    miércoles, 24 de enero de 2018 16:56

Todas las respuestas

  • En primer lugar yo empezaria por usar una validacion a nivel declartivo, es decir, crea una UNIQUE CONSTRAINT sobre las columnas o combinaciones de las mismas que requieres unicidad, una vez hayas hecho esto, entonces a nivel de la programación puedes tener una función que te retorne un true o false basado en los parametros de entrada y de esta forma puedes verificar antes de insertar dicha fila en la tabla de tu BBDD.

    "Oh, the wind, the wind is blowing,through the graves the wind is blowing,Freedom soon will come; then well come from the shadows".The Partisan(Leonard Cohen) Email: me[at]geohernandez.net Blog:www.geohernandez.net

    miércoles, 24 de enero de 2018 16:54
  • tendrias que validar que el ID del articulo no se duplique y no el ID del folio

    if not exists(select 1 from ventaD where IdArticulo = @IdArticulo and Id = @ID)

    Begin

         insert into ventaD() values()

    End


    Att. Franklin Andino


    miércoles, 24 de enero de 2018 16:56