怎麼在存儲過程 PROCEDURE 裏面用 TRAN 事務
下面是個例子 注意
1: problem 那裏是一個冒號:
2: 兩個地方都要有return 第一個return 沒有的話會繼續往下執行, 第二個return 沒有的話 如果SQL出錯,就會進入死循環;
其中這個語句的意思是:
INSERT INTO WordStock (KeyWord,Types)SELECT Keyword,Types FROM Records
WHERE KeyTime <@KeyTime
把 Records表裏面的記錄插入 WordStock表
CREATE PROCEDURE Counts_Records_TO_WordStock
(
@KeyTime DateTime -- 關鍵字鍵入時間
)
AS
begin TRAN
--從records表插入wordstock表
INSERT INTO WordStock (KeyWord,Types)
SELECT Keyword,Types FROM Records
WHERE KeyTime <@KeyTime
if @@error <> 0 goto problem
--同時刪除records表剛插入的記錄
DELETE FROM Records WHERE KeyTime<@KeyTime
if @@error <> 0 goto problem
COMMIT TRAN
RETURN
problem:
ROLLBACK TRAN
RETURN
GO