怎么在存储过程 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