我一直在编写存储过程。但是现在我不确定我是否正确地做到了。我有这段代码:
BEGIN
UPDATE tblPro
SET Email = @p_Email
WHERE ProID = @p_proId
UPDATE tblVisits
SET VisitBrief = 'CONFIRMED'
WHERE VisitID = @p_visitId
UPDATE Bookings
SET JobConfirmation = 1
WHERE BookingID = @p_bookingId
IF @@ROWCOUNT > 0
BEGIN
INSERT INTO tblView (ViewLogType)
VALUES ('Visit')
END
ELSE
PRINT 'WARNING: Insert Failed'
END
为了确保所有语句都被执行,在每个更新语句之后使用@@ROWCOUNT > 0
会更好吗?
感谢您的建议
答案 0 :(得分:1)
如果您想捕获错误,可以使用TRY / CATCH。
如果要保存行计数以供以后跟进,则应记录它们以保存您感兴趣的语句。即使语句正确执行(0行受到影响),Rowcount仍然可以为零。
如果您希望能够在其中一个语句失败时回滚,也可以使用事务。