以下は、SQL Server ストアド プロシージャです。以下に示すように、トランザクションの開始時と 2 つのコミットがあります。これは有効ですか (開始は while ループにあり、最初のコミットは同じ while ループにありますが、2 番目のコミットは 2 番目の while ループにあります)? そうでない場合、それを行うための解決策は何ですか?
助けてください。
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'DELETE_COBOC_DATA')
DROP PROCEDURE DELETE_COBOC_DATA
GO
CREATE PROCEDURE DELETE_COBOC_DATA @ORGDN VARCHAR(100), @CHUNK VARCHAR(10)
AS
BEGIN
-- some code that executes before while
WHILE (@NUM_ROWS_TMPTRADMIN > 0)
BEGIN
BEGIN TRANSACTION
-- executes some code
COMMIT TRANSACTION
END
-- some more code
WHILE @NUM_ROWS_TMPDIR > 0
BEGIN
-- code code code
COMMIT TRANSACTION
-- code code code
END
-- some more code here as well
END
私が知っているように、これはMySQLで許可されています