Hola Rakel,
puedes tratar la sentencia que te da problemas como una transacción, es decir un bloque de código cuya ejecución se debe realizar de un modo completo, descartandose la misma en caso de que haya algún problema (errores en los parámetros recibidos o intento de acceder a un mismo conjunto de registros por parte de dos aplicaciones en una plataforma cliente-servidor).
Hay tienes un sencillo ejemplo de su manejo, aunque puedes consultar en la ayuda del TRANSACT SQL las instrucciones concretas. Sino vuelve a preguntar.
Salu2 y suerte ;)
Diego
CREATE PROCEDURE MiProcedimiento
@param1 varchar(32),
@param2 varchar(32)
AS
begin transaction
-- iniciamos el bloque
insert into miTabla (campo1,campo2) select @param1, @param2
if @@error <>0 goto canc_tr
commit transaction
-- confirmamos la transacción (se ejecutará si no se han producido errores)
goto terminar
canc_tr:
rollrollback transaction
-- descartamos los cambios
select @@error
terminar:
GO