日期:2014-05-18  浏览次数:20501 次

限制插入数据
我想用触发器来实现,这样的触发器怎么写
 我现在有表PurchOutProduct 字段qty 如果向表qty 插入的数据是 比如:(—10)不允许插入, (10)这样的就允许插入 数字是变动的,只要带有‘-’就不允许 不让保存。这张单据是两个表组成的,不知道写触发器还要不要考虑另一个表PurchOutbase


------解决方案--------------------
qty 字段上加check 约束来的更快更直接些。


SQL code
ALTER TABLE PurchOutProduct
ADD CONSTRAINT ck_qty_PurchOutProduct CHECK (qty >=0);
GO

ALTER TABLE PurchOutbase
ADD CONSTRAINT ck_qty_PurchOutbase CHECK (qty >=0);
GO

------解决方案--------------------
SQL code
用检查就行了

Create table PurchOutProduct(
Qty int check (Qty>0)
)

------解决方案--------------------
触发器这样实现



SQL code
Create table PurchOutProduct(
Qty int
)
go
Create trigger tr_PurchOutProduct on PurchOutProduct
for insert
as
if exists(select 1 from inserted  where Qty<=0)
    rollback tran

------解决方案--------------------
SQL code
Create trigger tr_PurchOutProduct on PurchOutProduct
for insert
as
insert into PurchOutProduct 
select * from  inserted where not exists (select 1 from inserted where qty<0)