日期:2014-05-17 浏览次数:20702 次
If(Select 库存数量 From Deleted)>0 Begin Print ‘库存数量大于零时不能删除此记录’ Rollback Transaction return End
------解决方案--------------------
--触发器内的事务是隐式的 --应该保证多条记录不致有错,你那样只是一条记录 if exists(select 1 from deleted where 库存数量>0) begin raiserror('库存数量大于零时不能删除此记录',11,1); rollback; return; end
------解决方案--------------------
If(Select 库存数量 From Deleted)>0 Begin Print ‘库存数量大于零时不能删除此记录’ Rollback Transaction Return End 楼上都说完咯
------解决方案--------------------
如果是隐式开启了事务,是可以不写begin tran来作为事务的开端。在开启了SET IMPLICIT_TRANSACTIONS 后,只需要显式回滚或撤销事务即可,不需要begin tran,相关详细信息可以看联机丛书
------解决方案--------------------
IF (SELECT 库存数量 FROM deleted) > 0 BEGIN PRINT ‘库存数量大于零时不能删除此记录’ ROLLBACK TRANSACTION RETURN END --触发器内的事务是隐式的,隐式开启了事务,begin tran可以省略