--Try again.CREATE PROCEDURE TransferPayrollProc ( @ActionUser nvarchar(20), @retval int OUTPUT ) AS BEGINBEGIN TRANINSERT PayrollHistory(EmpNo,DatePay,PayAmount,PayCode,Memo,ActionUser) SELECT EmpNo,DatePay,PayAmount,PayCode,Reason,@ActionUser FROM Payroll IF (@@error!=0) BEGIN RAISERROR 20001 ' TransferPayrollProc : Error ' ROLLBACK TRAN SET @retval=0 END ELSE BEGIN PRINT @@ROWCOUNT SET @retval=@@ROWCOUNT COMMIT TRAN ENDEND GO
在 PRINT @@ROWCOUNT 之前执行 SELECT EmpNo,DatePay,PayAmount,PayCode,Reason,@ActionUser FROM Payroll
一样没有啊,而且我是希望返回 @retval = @@ROWCOUNT
按照你那样做结果一样是 0 哦,怎么回事?
是不是不能使用 Tran ?
一样没有啊,而且我是希望返回 @retval = @@ROWCOUNT
按照你那样做结果一样是 0 哦,怎么回事?
是不是不能使用 Tran ?
(
@ActionUser nvarchar(20),
@retval int OUTPUT
)
AS
BEGINBEGIN TRANINSERT PayrollHistory(EmpNo,DatePay,PayAmount,PayCode,Memo,ActionUser)
SELECT EmpNo,DatePay,PayAmount,PayCode,Reason,@ActionUser FROM Payroll IF (@@error!=0)
BEGIN
RAISERROR 20001 ' TransferPayrollProc : Error '
ROLLBACK TRAN
SET @retval=0
END
ELSE
BEGIN
PRINT @@ROWCOUNT
SET @retval=@@ROWCOUNT
COMMIT TRAN
ENDEND
GO
SELECT EmpNo,DatePay,PayAmount,PayCode,Reason,@ActionUser FROM Payroll