【问题标题】:Updates tables without using trigger [closed]不使用触发器更新表[关闭]
【发布时间】:2011-08-23 04:56:00
【问题描述】:

谁能告诉我:

在 SQL 中我想在两个表中插入相同数据的数据, 您必须仅在表 1 中插入数据,其他表(表 2)中的数据将自动更新......从表 1。 条件适用:不使用触发器..

【问题讨论】:

  • 为什么不使用触发器?是什么让你相信没有它是可能的?
  • Rahul,你能提供更多的背景信息吗?您要实现什么业务目标?为什么触发器不是一个选项?
  • 不知道为什么不能使用触发器,但是如果你想在没有触发器的情况下将相同的数据插入两个表中,最好通过应用层处理,即。让客户端应用程序处理插入,并确保您在一个事务中完成所有操作,以防其中一个或两个插入失败。

标签: sql-server sql-server-2008


【解决方案1】:

我不知道您是否会“自动”考虑这一点,但您可以使用 output 子句在一个语句中完成。

insert into Table2 (ID, Col1, Col2)
select ID, Col1, Col2
from (
      insert into Table1 (ID, Col1, Col2)
      output inserted.ID, 
             inserted.Col1,
             inserted.Col2
      values (1, 'Col 1', 'Col 2')
     ) as T

【讨论】:

  • 好主意,你也可以使用 output into 语法:insert into table1 output inserted.* into table2 values (1,'col1','col2')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
相关资源
最近更新 更多