ALTER PROCEDURE SetSystemParameters
(
@ParameterName varchar(30),
@ParameterValue float
)
AS
DECLARE @ErrorAmount int
DECLARE @CurrentMonth varchar(30)

SET @CurrentMonth=LTRIM(STR(YEAR(GETDATE())))+'年'+LTRIM(STR(MONTH(GETDATE())))+'月'

BEGIN TRANSACTION

DELETE FROM SystemParameters
WHERE ParameterName=@ParameterName
AND SetTime=@CurrentMonth

SET @ErrorAmount=@@ERROR
IF @ErrorAmount<>0
    BEGIN
ROLLBACK TRANSACTION
RETURN @ErrorAmount
END

INSERT INTO SystemParamters(SetTime,ParameterName,ParameterValue)
VALUES(@CurrentMonth,@ParameterName,@ParameterValue)

SET @ErrorAmount=@@ERROR
IF @ErrorAmount<>0
    BEGIN
ROLLBACK TRANSACTION
RETURN @ErrorAmount
END

COMMIT TRANSACTION

RETURN错误为:EXECUTE 后的事务计数指出缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句。原计数 = 0,当前计数 = 1。