考慮下面的例子SQL Server 2008中,嵌套的程序問題
Procedure1
..........
IF(@errorcode<>0) ROLLBACK TRANSACTION
ELSE COMMIT TRANSACTION
SELECT @errorcode
Procedure2
..........
WHILE [condition] BEGIN
EXEC @proc1result = Procedure1 [parameters]
IF(@proc1result=0) SET @[email protected]+1
END
SELECT @totalresult
的問題是,@totalresult正確遞增,而是由過程2返回的值是0 如何得到它的權利?
我正在使用sql server 2008和實體框架4. 過程1效果很好。
如果從procedure1回滾事務我得到「不能在INSERT-EXEC語句內使用ROLLBACK語句。」例外,如果一切順利,並且每當我得到正確的結果時,Procedure1都會提交。 – gigi
@吉吉:如果你看我的答案,你會看到我的建議。對於存儲過程,必須使用'RETURN @ something'來返回錯誤代碼,而'SELECT something ...'必須用於返回記錄集。 –