[ad_1]
ALTER PROCEDURE [dbo].[SendSMS_TestMark] @EntityID INT , --PolicyID @Mobile VARCHAR(11) , @Message VARCHAR(480) ,--What Needs to be send Text @ScheduleDateTime DATETIME , --Same date sync @DateCreated DATETIME, --Same date sync @ProjectID INT -- ClaimType and message type AS BEGIN TRY BEGIN TRAN IF LEN(@Mobile) <= 10 OR (LEN(@Mobile) >=10 ) INSERT INTO Media_QA.Multimedia.SMS ( fkEntityID , C_EntityType , Mobile , Message , ScheduledDateTime , DateCreated , fkProjectID ) SELECT @EntityID , 776 , --Policy @Mobile, @Message , @ScheduleDateTime , @DateCreated , @ProjectID END TRY BEGIN CATCH RAISERROR ('Invalid Mobile: Mobile number must be 10 digits', 16,2 ) ROLLBACK COMMIT TRAN
Những gì tôi đã thử:
Tôi đã thử hoán đổi các chức năng nhưng họ vẫn cam kết
Giải pháp 1
Tôi không thấy END CATCH ở đâu cả, vì vậy đó sẽ là một vấn đề.
Ngoài ra, bạn không ném ngoại lệ vào bất kỳ đâu để khối TRY bắt được. Việc không thực hiện được câu lệnh IF sẽ không tạo ra ngoại lệ.
Thành thật mà nói, tôi không thấy bất kỳ điều gì ở đây thậm chí yêu cầu TRY/CATCH. Mặt “sai” của câu lệnh IF của bạn có thể gây ra lỗi được trả về cho người gọi.
[ad_2]
コメント