SELECT @cateId=log_CateID FROM inserted–查到新插入的文章的类别ID
SET @errorSum=@errorSum+@@ERROR–累计错误
UPDATE blog_Category SET cate_Count=cate_Count+1 WHERE cate_ID=@cateId–对相应的表进行更新
SET @errorSum=@errorSum+@@ERROR–累计错误
IF @errorSum <> 0–若执行期间出现错误则回滚,否则提交事务
BEGIN
print ‘创建失败,回滚事务!’
ROLLBACKTRANSACTION
END
ELSE
BEGIN
print ‘创建成功,提交事务!’
COMMITTRANSACTION
END
GO
CREATE TRIGGER trig_Article_Ins--开始创建触发器ON dbo.blog_Article--指明要对哪个表创建FOR INSERT--创建INSERT类型的触发器ASBEGIN TRANSACTION--开始事务 DECLARE @cateId int,@errorSum int--声明变量,分别用于存储类别ID和错误统计 SET @errorSum = 0--错误统计初值为0 SELECT @cateId=log_CateID FROM inserted--查到新插入的文章的类别ID SET @errorSum=@errorSum+@@ERROR--累计错误 UPDATE blog_Category SET cate_Count=cate_Count+1 WHERE cate_ID=@cateId--对相应的表进行更新 SET @errorSum=@errorSum+@@ERROR--累计错误 IF @errorSum <> 0--若执行期间出现错误则回滚,否则提交事务 BEGIN print '创建失败,回滚事务!' ROLLBACK TRANSACTION END ELSE BEGIN print '创建成功,提交事务!' COMMIT TRANSACTION ENDGO
if exists (select * from sysobjects wherename=’trig_update_transInfo’)
droptrigger rig_update_transInfo
go
createtrigger rig_update_transInfo
on transInfo
forUPDATE
as if UPDATE(transDate)
begin
print ‘交易失败’
raiserror(‘安全警告:交易日期不能修改,由系统自动产生’,16,1)
rollbacktransaction
end
go
//测试触发器
Update transInfo set transDate=’2000-1-1’
go
if exists (select * from sysobjects where name=’trig_update_transInfo’) drop trigger rig_update_transInfogocreate trigger rig_update_transInfoon transInfo for UPDATEas if UPDATE(transDate)beginprint ‘交易失败’raiserror(‘安全警告:交易日期不能修改,由系统自动产生’,16,1)rollback transactionendgo//测试触发器Update transInfo set transDate=’2000-1-1’go