日期:2014-05-17 浏览次数:20843 次
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可以省略