【发布时间】:2015-09-14 06:17:25
【问题描述】:
我在存储过程中添加了异常处理,如下所示。
ALTER PROCEDURE [dbo].[BUDGETUPDATE]
@DistrictID int
AS
BEGIN
SET NOCOUNT ON ;
BEGIN TRY
BEGIN TRAN
UPDATE bud
SET bud.BudgetStateID = @BudgetStateID
FROM [dbo].[BudgetOffice] bud
INNER JOIN [dbo].[vw_Office] vw
ON (vw.OfficeID = bud.OfficeID)
WHERE vw.DistrictID = @DistrictID
IF @@ERROR = 0
BEGIN
COMMIT TRAN;
SELECT @@ROWCOUNT AS AffectedRow;
END
END TRY
BEGIN CATCH
SELECT @@ERROR AS ERROR
ROLLBACK TRAN;
END CATCH
SET NOCOUNT OFF ;
END
我需要使用@@ROWCOUNT 返回受影响的行数。但是这个stored procedure 总是返回行数为0。任何原因。我需要在update 之后写@@rowcount 语句吗?
【问题讨论】:
-
我认为你需要在
UPDATE之后选择@@rowcount。
标签: sql sql-server tsql