【发布时间】:2013-12-01 20:42:35
【问题描述】:
我想在 SQL Server 2012 中创建一个触发器,当我将一行插入特定表时激活该触发器。
触发器必须在特定列中插入一个值,在我插入新行的同一个表和行中。
只有当我插入的行中的特定列没有值时,触发器才必须激活,即。空。
假设我正在插入:
- 表:
car - 列:
car_make | car_price | car_img
如果我在插入中提供所有值:
car_make | car_price | car_img
触发器不得激活
但是,如果我只插入 2 列的值:
car_make | car_price
car_img 值为 null,则触发器必须激活并执行以下操作:
- 在同一受影响行的
car_img列中插入预定义值
PS。我必须使用触发器,它用于分配。我不能使用默认值。
【问题讨论】:
-
您需要为表中的所有列设置默认值,而不是这个简单要求的触发器。
-
@MuhammedAli 我必须使用触发器,这是强制性的。这是一个任务。
-
触发这样一个简单的要求真的是过度杀戮,但无论如何请看我的回答。
-
附注:如果您有
FOR INSERT触发器,它将始终触发 - 您不能选择性地根据您的数据让它触发(或不触发)。您可以做的是在触发器代码中检查这些条件并根据需要处理情况
标签: asp.net sql sql-server triggers