Hola.
Te dejo un ejemplo que puede ayudarte en algo:
Código SQL
[-]ç
CREATE PROCEDURE SP_InsertarCliente
@nrrut int,
@dvrut char(1),
@nmcliente varchar(60),
@nmdireccion varchar(40),
@nmcomuna varchar(20),
@nmciudad varchar(20),
@nmgiro varchar(20),
@nrfono varchar(15),
@nrfax varchar(15),
@nmemail varchar(30),
@nrcredito float,
@nrsaldo float,
@nrplazo integer,
@nrdescuento float,
@nrfiador varchar(60)
AS
BEGIN
IF EXISTS (SELECT * FROM CLIENTE WHERE nrrut=@nrrut)
RETURN(1)
ELSE
BEGIN
BEGIN TRANSACTION InsertarCliente
INSERT INTO CLIENTE
VALUES (@nrrut,
@dvrut,
@nmcliente,
@nmdireccion,
@nmcomuna,
@nmciudad,
@nmgiro,
@nrfono,
@nrfax,
@nmemail,
@nrcredito,
@nrsaldo,
@nrplazo,
@nrdescuento,
@nrfiador)
IF @@ERROR !=0
BEGIN
ROLLBACK TRANSACTION InsertarCliente
RETURN(90)
END
ELSE
BEGIN
COMMIT TRANSACTION InsertarCliente
RETURN(0)
END
END
END
Espero que te sirva...