触发器自动修改一些内容应该是很正常的数据库操作,跟场景都没有什么关系吧
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- CREATE TRIGGER [dbo].[zb]
- ON [dbo].[子表]
- AFTER INSERT
- AS
- BEGIN
- SET NOCOUNT Off;
- UPDATE a SET a.[整数2] = a.整数2 *10
- FROM 子表 a,[Inserted] b
- WHERE a.[ID]=b.[ID]
- UPDATE a SET a.[整数1] = a.整数1 *10
- FROM 主表 a,[Inserted] b
- WHERE a.[ID]=b.[主表ID]
- SET NOCOUNT ON;
- END
复制代码 上面方法是:只在子表上用一个触发器同时更新主表和子表,这个是临时可以的满足群主的需求
但是,反过来,在主表上用一个触发器同时更新主表和子表,这个是会报错的;包括帖子这里的主表、子表各自有触发器都报错
以上只是简单的测试
所以感觉这个应该是一个BUG,而且算比较严重,毕竟是跟MS数据库的逻辑直接冲突,这个问题大家一看也知道是不合理的,希望能完善一下。
|