2012-11-06 10 views
0

您好我创建触发器说明书,其做工精细的测试场 1.当我的数据复制到其触发设置表或我使用的代码插入到。 插入这个样子的:触发插入-doesn't火真实表where子句

SET ANSI_NULLS ON GO 

SET QUOTED_IDENTIFIER ON GO 
Create TRIGGER sometr ON [dbo].[mpomiar] For INSERT 
AS 
Begin 
iNSERT INTO 
[Database].dbo.[eksport] ([Repair_Date],[idKard],[Position],[error][Pos_X],[Pos_Y],[Pos_Z],[name],[model],[parent]) 

SELECT i.[Repair_Date],c.idKard,i.[Position],i.error,i.[Pos_X],i.[Pos_Y],i.[Pos_Theta],s.name, mo.Model, pn.Parent 

FROM inserted i 
inner join dbo.test t on i.idtst=t.idtst 

inner join dbo.Kard c on t.idKard=c.idKard 

inner join dbo.TFILE AS s ON t.idTFILE = s.idTFILE INNER JOIN 

     dbo.MACHINE AS mc ON t.idMC = mc.idMC INNER JOIN 

     dbo.PANEL AS p ON c.idPANEL = p.idPANEL INNER JOIN 

     dbo.PARENT AS pn ON i.idPARENT = pn.idPARENT INNER JOIN 

     dbo.MODEL AS mo ON pn.idMOD = mo.idMOD 

where [Repair_Error] in (400,300)  and c.idKard not in (select idKard from dbo.eksport) 

end 

但当触发的MS SQL Server中的设置对真表的2005年,它只有当我从代码中删除火

其中[Repair_Error]中(400300)和c.idKard不是(从dbo.eksport选择idKard)

回答

0

确定。今天我们测试的触发和它的作品没有:

where [Repair_Error] in (400,300) 

,但它与

工程时c.idKard没有(从dbo.eksport选择idKard)

但触发必须努力with where [Repair_Error] in (400,300)