campo autoincrementable pero sin ser autonumerico
Publicado por Julio Cesar (2 intervenciones) el 04/09/2019 22:23:03
Hola amigos necesito que me ayuden!!!
El problema es que tengo una tabla FACTURA y en ella tengo mi campo autonumerico ID_FACTURA: INT pero tambien tengo un campo que se llama SERIE:INT, el cual necesito que sea un campo que se incremente automatico cada ves que se inserte un nuevo registro. Tambien ocurre que si borro un registro, el campo ID_FACTURA que es autonumerico ya no mantiene la secuensia como es logico, pero el campo serie si debe mantener siempre la secuencia por ejemplo:
ID_FACTURA: 1 - 2 - 4 - 6 - 7- 8
SERIE: 1 - 2 - 3 - 4 - 5 - 6
A continuacion les muestro el codigo con el qual lo estoy intentando pero la verdad es que no sale como necesito
El problema es que tengo una tabla FACTURA y en ella tengo mi campo autonumerico ID_FACTURA: INT pero tambien tengo un campo que se llama SERIE:INT, el cual necesito que sea un campo que se incremente automatico cada ves que se inserte un nuevo registro. Tambien ocurre que si borro un registro, el campo ID_FACTURA que es autonumerico ya no mantiene la secuensia como es logico, pero el campo serie si debe mantener siempre la secuencia por ejemplo:
ID_FACTURA: 1 - 2 - 4 - 6 - 7- 8
SERIE: 1 - 2 - 3 - 4 - 5 - 6
A continuacion les muestro el codigo con el qual lo estoy intentando pero la verdad es que no sale como necesito
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
create proc spinsertar_factura
@id_factura int=null output,
@id_t_factura int,
@cliente varchar(50),
@serie int,
@fecha date,
@descripcion varchar(250)
as
BEGIN
IF @serie = null ---esto no se cumple nunca
BEGIN
insert into factura (id_t_factura, cliente, serie, fecha, descripcion)
values (@id_t_factura, @cliente, (select (serie)+1 from factura), @fecha, @descripcion)
--obtener codigo autogenerado
set @id_factura=@@IDENTITY
END
ELSE
BEGIN
insert into factura (id_t_factura, cliente, serie, fecha, descripcion)
values (@id_t_factura, @cliente, (select max(serie)+1 from factura), @fecha, @descripcion)
--obtener codigo autogenerado
set @id_factura=@@IDENTITY
END
END
go
Valora esta pregunta


0