Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql 触发器插入-不使用where子句在实际表上触发_Tsql_Triggers_Insert - Fatal编程技术网

Tsql 触发器插入-不使用where子句在实际表上触发

Tsql 触发器插入-不使用where子句在实际表上触发,tsql,triggers,insert,Tsql,Triggers,Insert,嗨,我创建了触发器插入,它在测试场上工作得很好 1.当我将数据复制到设置了触发器的表中时,或者使用代码插入。 插入内容如下所示: 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

嗨,我创建了触发器插入,它在测试场上工作得很好 1.当我将数据复制到设置了触发器的表中时,或者使用代码插入。 插入内容如下所示:

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
但当在MSSQLServer2005中对real表设置触发器时,它仅在我从代码中删除时才会触发

其中400300中的[Repair_Error]和dbo.eksport中的c.idKard not选择idKard


我们测试了触发器,它在没有以下条件的情况下工作:

where [Repair_Error] in (400,300) 
但它与:

where c.idKard not in (select idKard from dbo.eksport)
触发器必须与400300中的where[Repair_Error]一起工作