我有2个名为Prac1
和prac2
的表。Prac1
有触发器。当prac1
中发生插入时,相同的条目进入prac2
(触发代码)我已经创建了一个sp,从prac1
中选择前3个id并再次插入prac1
并使用它的值(其他列)。但是只添加了一行而不是3.Query是:< / p>
Insert name,lname into prac1 where id in(select top3 id from prac1).
当我删除触发器时,我的sp被执行并且3个条目被添加到表中。如何处理这种情况?
prac1:ID,NAME,L-NAME
prac2:姓名,Lname
答案 0 :(得分:0)
您确定自己的查询有效吗?因为正如评论中已经说明的那样,语法无效。查看MSDN for more information正确的语法是:
INSERT [INTO]
table_name [ ( column_list ) ]
{ VALUES
( { DEFAULT | NULL | expression } [ ,...n] )
| derived_table
}
所以你的插入查询应该是这样的:
INSERT INTO prac1(name, lname)
SELECT TOP 3 name, lname
FROM prac1
发布您的触发器代码,您看到的插入的行应该是第一个触发触发器的行。然而,插入物可能再次触发它。所以也许你需要禁用它并重新启用它。