Tomar Nro. Para Numerar Facturas

18/08/2005 - 19:13 por Nelson Rodriguez | Informe spam
Tengo el siguiente proc. almacenado que pretende devolver el siguiente nro.
de una tbala que tengo para numerar facturas:

CREATE PROCEDURE dortablas @quetabla varchar(10), @doynum int OUTPUT
AS
DECLARE @nnId int

BEGIN TRANSACTION
SELECT @doynum = siguiente+1
FROM numdores (HOLDLOCK) where ctabla=@quetabla
IF NOT (@@rowcount = 1)
BEGIN
INSERT INTO numdores (ctabla,siguiente,campo) values (@quetabla,1,'?')
set @doynum = 1
END

UPDATE numdores
SET siguiente = @doynum where ctabla=@quetabla
COMMIT TRANSACTION
GO

Ocurre que a veces me graba registros son un número generado por esta rutina
y no me actualiza LA TABLA!!!!!!.

solicito opiniones.
Gracias

Nelson Rodriguez
neroig@adinet.com.uy

Preguntas similare

Leer las respuestas

#1 Harold Crow
18/08/2005 - 19:52 | Informe spam
no podes enviar el nombre de la tabla en una variable de tipo caracter
no recuerdo el tipo que tenes que definir pero de lo otro si estoy
seguro

"Nelson Rodriguez" escribió en el mensaje
news:
Tengo el siguiente proc. almacenado que pretende devolver el siguiente
nro. de una tbala que tengo para numerar facturas:

CREATE PROCEDURE dortablas @quetabla varchar(10), @doynum int OUTPUT
AS
DECLARE @nnId int

BEGIN TRANSACTION
SELECT @doynum = siguiente+1
FROM numdores (HOLDLOCK) where ctabla=@quetabla
IF NOT (@@rowcount = 1)
BEGIN
INSERT INTO numdores (ctabla,siguiente,campo) values (@quetabla,1,'?')
set @doynum = 1
END

UPDATE numdores
SET siguiente = @doynum where ctabla=@quetabla
COMMIT TRANSACTION
GO

Ocurre que a veces me graba registros son un número generado por esta
rutina y no me actualiza LA TABLA!!!!!!.

solicito opiniones.
Gracias

Nelson Rodriguez



Respuesta Responder a este mensaje
#2 Maxi
18/08/2005 - 20:28 | Informe spam
Hola, leete este articulo:

http://www.microsoft.com/spanish/ms...art187.asp


Salu2
Maxi


"Nelson Rodriguez" escribió en el mensaje
news:
Tengo el siguiente proc. almacenado que pretende devolver el siguiente
nro. de una tbala que tengo para numerar facturas:

CREATE PROCEDURE dortablas @quetabla varchar(10), @doynum int OUTPUT
AS
DECLARE @nnId int

BEGIN TRANSACTION
SELECT @doynum = siguiente+1
FROM numdores (HOLDLOCK) where ctabla=@quetabla
IF NOT (@@rowcount = 1)
BEGIN
INSERT INTO numdores (ctabla,siguiente,campo) values (@quetabla,1,'?')
set @doynum = 1
END

UPDATE numdores
SET siguiente = @doynum where ctabla=@quetabla
COMMIT TRANSACTION
GO

Ocurre que a veces me graba registros son un número generado por esta
rutina y no me actualiza LA TABLA!!!!!!.

solicito opiniones.
Gracias

Nelson Rodriguez



Respuesta Responder a este mensaje
#3 Alejandro Mesa
18/08/2005 - 21:16 | Informe spam
Nelson,

Trata de esta forma:

CREATE PROCEDURE dortablas
@quetabla varchar(10),
@doynum int OUTPUT
AS
set nocount on

if exists(select * from numdores where ctabla=@quetabla)
update numdores
set @doynum = siguiente = siguiente + 1
where ctabla=@quetabla
else
begin
insert into numdores (ctabla,siguiente,campo) values (@quetabla,1,'?')
set @doynum = 1
end

return @@error
GO


AMB

"Nelson Rodriguez" wrote:

Tengo el siguiente proc. almacenado que pretende devolver el siguiente nro.
de una tbala que tengo para numerar facturas:

CREATE PROCEDURE dortablas @quetabla varchar(10), @doynum int OUTPUT
AS
DECLARE @nnId int

BEGIN TRANSACTION
SELECT @doynum = siguiente+1
FROM numdores (HOLDLOCK) where ctabla=@quetabla
IF NOT (@@rowcount = 1)
BEGIN
INSERT INTO numdores (ctabla,siguiente,campo) values (@quetabla,1,'?')
set @doynum = 1
END

UPDATE numdores
SET siguiente = @doynum where ctabla=@quetabla
COMMIT TRANSACTION
GO

Ocurre que a veces me graba registros son un número generado por esta rutina
y no me actualiza LA TABLA!!!!!!.

solicito opiniones.
Gracias

Nelson Rodriguez




Respuesta Responder a este mensaje
#4 Nelson Rodriguez
19/08/2005 - 01:16 | Informe spam
Muchas gracias por vuestras respuestas.
Saludos

"Nelson Rodriguez" escribió en el mensaje
news:
Tengo el siguiente proc. almacenado que pretende devolver el siguiente


nro.
de una tbala que tengo para numerar facturas:

CREATE PROCEDURE dortablas @quetabla varchar(10), @doynum int OUTPUT
AS
DECLARE @nnId int

BEGIN TRANSACTION
SELECT @doynum = siguiente+1
FROM numdores (HOLDLOCK) where ctabla=@quetabla
IF NOT (@@rowcount = 1)
BEGIN
INSERT INTO numdores (ctabla,siguiente,campo) values (@quetabla,1,'?')
set @doynum = 1
END

UPDATE numdores
SET siguiente = @doynum where ctabla=@quetabla
COMMIT TRANSACTION
GO

Ocurre que a veces me graba registros son un número generado por esta


rutina
y no me actualiza LA TABLA!!!!!!.

solicito opiniones.
Gracias

Nelson Rodriguez



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida