[SQL]SP的交易和try cache寫法範例
工作維護上有一個專案,專門都是使用sp的方式,現在很少寫純sql的方式,大部份都是使用entity,對sp有點淡忘,所以把一些sp的用法記錄下來,以備自己以後可以查閱,註解我則是都寫在sp裡面
AS
BEGIN
SET NOCOUNT ON;
begin TRANSACTION; --開始交易
begin TRY
DECLARE @today DATE
DECLARE @count int
set @today=GETDATE()
select @count=count(*) from DFYCData where TradeDate=@today
if(@count>0)
BEGIN
EXEC SP_AddAsyncAll --呼叫別的sp
EXEC SP_MoveAysncAll
delete DepositeRate where DepositeRateBatchNo<>(select max(DepositeRateBatchNo) from DepositeRate)
END
end TRY
begin CATCH
ROLLBACK TRANSACTION; --如果失敗的話,則跑此行
end CATCH
if @@trancount>0
COMMIT TRANSACTION;
END
GO