私のSPには、DELETEおよびINSERT INTOステートメントが含まれています。DELETE ステートメントが成功し、INSERT INTO が失敗した場合、JAVA は最初のステートメントのみを調べて、SP 全体が正常に実行されたと結論付けますが、これは間違っている可能性があります。
ステートメントの 1 つだけが失敗した場合に、複数のステートメントを実行して Java で例外を取得するにはどうすればよいですか。SQL で TRY-CATCH を試してみましたが、最初のステートメントが成功したため、すべてのステートメントが正しく実行されたと結論付けました。
これは MS SQL 2008 データベースです
ALTER PROCEDURE [testing]
@bikes varchar(8000),
@groupw varchar(4),
@name char(6)
AS
BEGIN
DELETE CP_customer_kngr_corr_s WHERE knid in ('blue')
DECLARE @pos INT
DECLARE @len INT
DECLARE @value varchar(8000)
set @pos = 0
set @len = 0
set @bikes= @bikes +','
WHILE CHARINDEX(',', @bikes, @pos)>0 BEGIN
set @len = CHARINDEX(',', @bikes, @pos+1) - @pos
set @value = SUBSTRING(@bikes, @pos, @len)
INSERT INTO [bikes]
([bikes])
VALUES
(@value)
set @pos = CHARINDEX(',', @bikes, @pos+@len) +1
END
END