DECLARE @CashSettlmentId nvarchar(40) Select @CashSettlmentId=CashSettlementId from inserted--我只想让@CashSettlmentId = 7000时才执行下面的语句,有什么办法吗? BEGIN
INSERT INTO Log_DataStep(TransactionId,OP,OP_Date,OP_IP,DataStep) SELECT TransactionId,'operator',getdate(),'127.0.0.1','DATASTEP'
from inserted end
--try create trigger tri_insert on Log_DataStep instead of insert as if not exists(select 1 from Log_DataStep where CashSettlementId=7000 ) rollback
同意楼上,在触发器中写条件,条件不满足时用rollback
if not exists(select 1 from Log_DataStep where CashSettlementId=7000 )这个能不能替换成判断@CashSettlmentId 这个值已经在前边查出来。 case when @CashSettlmentId=7001 then rollback end 但这样报语法错误
你不是判斷CashSettlementId不等於7000不插入嗎? 沒有必要引入變量Y
Select @CashSettlmentId=CashSettlementId from inserted 前边已经取出这个变量了,我后边还要用这个变量,所以不想再查一遍,这里不能用case吗?
Select @CashSettlmentId=CashSettlementId from inserted--我只想让@CashSettlmentId = 7000时才执行下面的语句,有什么办法吗? BEGIN
INSERT INTO Log_DataStep(TransactionId,OP,OP_Date,OP_IP,DataStep)
SELECT TransactionId,'operator',getdate(),'127.0.0.1','DATASTEP'
from inserted
end
create trigger tri_insert on Log_DataStep
instead of insert
as
if not exists(select 1 from Log_DataStep where CashSettlementId=7000 )
rollback
rollback
end
但这样报语法错误
沒有必要引入變量Y
前边已经取出这个变量了,我后边还要用这个变量,所以不想再查一遍,这里不能用case吗?
rollback