【发布时间】:2014-08-14 20:16:01
【问题描述】:
使用 SSMS 2008。
我有 2 张桌子:
TABLE1:
PKField (Primary Key)
Field2
Field3
TABLE2:
PKField (Primary Key)
FKField (Foreign Key to Table1.PKField)
Field2
Field3
我需要在 TABLE2 上创建一个触发器来执行此操作:
只要将行插入到 TABLE2 中(此时 Field2 和 Field3 将始终为空),然后更新字段 TABLE2.Field2 和 TABLE2.Field3 基于 TABLE1.Field2 和 TABLE2.Field3 值。
使用 SSMS 2008 我该怎么做?我是触发器等的新手...
谢谢!
【问题讨论】:
-
在我看来,将数据从 table1 复制到 table2 是一个糟糕的设计。您应该将该数据正确规范化并保存在表 1 中。更新 table1 时会发生什么?您是否还必须更新 table2?
-
一般来说,写触发器的最好方法是不要写这样的。你能重新考虑使用触发器吗?如果没有,请查找
INSTEAD OF INSERT触发器。 -
@SeanLange 我正在开发一个继承的、预先存在的、非常复杂的应用程序。我明白你在说什么。但是,在这种情况下,不幸的是必须这样做。 (我不必担心 table1 何时更新......在这种情况下。)
-
@gotqn 谢谢。不知道你的意思,但我会调查一下。
标签: sql sql-server sql-server-2008 triggers