下面触发器在SQL2008里面执行后生效,在SQL2000里面执行不生效,不知道什么原因
create trigger up_SEOutStock on SEOutStock
for insert
as
set nocount on
if exists(
select 1
from inserted c
join seoutstockentry d
on c.finterid=d.finterid
join (
select fitemid,sum(fqty) 库存数量
from ICInventory
group by fitemid) e
on d.fitemid=e.fitemid
where d.fqty>e.库存数量)
begin
declare @s varchar(1000)
select @s=isnull(@s+',','')+f.fnumber
from inserted c
join seoutstockentry d
on c.finterid=d.finterid
join (
select fitemid,sum(fqty) 库存数量
from ICInventory
group by fitemid) e
on d.fitemid=e.fitemid
join t_icitem f
on d.fitemid=f.fitemid
where d.fqty>e.库存数量
exec('raiserror(''物料代码为 '+@s+' 超出库存数,单据不允许保存!'',18,1)')
rollback tran
end
set nocount off
go
for insert
as
set nocount on
if exists(
select 1
from inserted c
join seoutstockentry d
on c.finterid=d.finterid
join (
select fitemid,sum(fqty) 库存数量
from ICInventory
group by fitemid) e
on d.fitemid=e.fitemid
where d.fqty>e.库存数量)
begin
declare @s varchar(1000)
select @s=isnull(@s+',','')+f.fnumber
from inserted c
join seoutstockentry d
on c.finterid=d.finterid
join (
select fitemid,sum(fqty) 库存数量
from ICInventory
group by fitemid) e
on d.fitemid=e.fitemid
join t_icitem f
on d.fitemid=f.fitemid
where d.fqty>e.库存数量
exec('raiserror(''物料代码为 '+@s+' 超出库存数,单据不允许保存!'',18,1)')
rollback tran
end
set nocount off
go
...全文
相关推荐
将sql server 2008的数据库导入到sql server2000上
首先,我们要知道SQL Server 2008与SQL Server 2000之间存在显著的版本差异。
SQL Server 2000中的触发器使用
在SQL Server 2000中,触发器是一种特殊的存储过程,它们自动在特定的数据操作事件(如INSERT、UPDATE或DELETE)发生时执行。
SQL Server 2000触发器技术.pdf
SQL Server 2000触发器可以分为两种类型:INSTEAD OF触发器和AFTER触发器。INSTEAD OF触发器是在试图执行插入、更新或删除操作但该操作因某种原因无法正常执行时触发的。
SQL Server2000触发器技术的应用.pdf
SQL Server2000支持两种类型的触发器:AFTER(后触发器)和INSTEAD OF(替代触发器)。AFTER触发器在引发触发器的SQL语句执行成功后激活,如果操作失败则不执行。
sql2000教程 存储过程,触发器
它们为数据库提供了元数据级别的控制,使得在数据更改时可以执行额外的操作。了解SQL Server 2000中的触发器,你需要知道以下要点:1.


应用实例
