Hola Matanga! muchas gracias por tu respuesta!
Relize una estructura para la transaccion como la siguiente:
Código:
DECLARE @Error int,
@id_familia int,
@codigo int,
@nombre nvarchar (75),
@marca nvarchar(75),
@detalles nvarchar(75),
@precio int,
@pack int,
@fotoarticulo nvarchar (75),
@modelo nvarchar (50)
--Declaro una variable que utilizaro para almacenar un posible código de error
set @id_familia = 3
set @codigo = 146
set @nombre = 'jm'
set @marca = 'jm'
set @detalles = 'jm'
set @precio = 12
set @pack = 1
set @fotoarticulo = 'jpg'
set @modelo = 'jm'
SET @Error=@@ERROR
BEGIN TRAN
--Inicio la transacción
INSERT INTO articulos
(id_familia, codigo, nombre, marca, detalles, precio, pack, fotoarticulo, modelo )
VALUES
(@id_familia, @codigo, @nombre, @marca, @detalles, @precio, @pack, @fotoarticulo, @modelo )
--Ejecuto la transaccion
--Si ocurre un error almaceno su código en @Error
--y salteo al código que deshace la transacción.
IF (@Error<>0) GOTO TratarError
COMMIT TRAN
TratarError:
--Si ocurrio un error llegamos hasta aca
If @@Error<>0
BEGIN
PRINT 'Ha ecorrido un ERROR. Abortamos la transacción'
--Seshacemos la transacción
ROLLBACK TRAN
END
y aparentemente funciona, digo aparente mente, por que si ingreso valores correctos, genera el tipico:
Pero si al ingresar un dato no valisdo, ejemplo una letra "A" en un campo de valor int, aparece lo siguiente:
Código:
Server: Msg 207, Level 16, State 3, Line 12
Invalid column name 'A'.
DEbo hacerlo en SQL 2000, ya que esta todo el desarrollo echo en esta tecnologia, lo tendre en cuenta para el proximo proyeto, Por favor, necesito su ayuda!