Sql 用于防止根据条件插入数据的触发器
我需要一个触发器,在像下面这样插入表中的任何行之前,防止一些数据根据条件插入表中Sql 用于防止根据条件插入数据的触发器,sql,sql-server,tsql,triggers,Sql,Sql Server,Tsql,Triggers,我需要一个触发器,在像下面这样插入表中的任何行之前,防止一些数据根据条件插入表中 create Trigger trigger_name on table_name for insert AS Begin if (true) insert into table_name values () End 代替触发器(使用代替子句) 此类型的触发器在SQL Server开始执行之前激发 激发它的行动。这与后触发器不同,后者 在导致其着火的操作之后发生火灾。我们可以换一个房间 在成功执行的表上
create Trigger trigger_name
on table_name
for insert
AS
Begin
if (true)
insert into table_name values ()
End
代替触发器
(使用代替子句)
此类型的触发器在SQL Server开始执行之前激发
激发它的行动。这与后触发器不同,后者
在导致其着火的操作之后发生火灾。我们可以换一个房间
在成功执行的表上插入/更新/删除触发器的
但不包括对表的实际插入/更新/删除
语法:
CREATE TRIGGER trigger_nameON {table|view}
[WITH ENCRYPTION|EXECUTE AS]
{FOR|AFTER|INSTEAD OF}
{[CREATE|ALTER|DROP|INSERT|UPDATE|DELETE ]}
[NOT FOR REPLICATION]
AS sql_statement [1...n ]
触发器应该是这样的
CREATE TRIGGER trigger_name
ON table_name
instead OF INSERT
AS
BEGIN
IF (true)
INSERT INTO table_name VALUES ()
END
使用和运算符验证满足条件的行
CREATE TRIGGER trigger_name
ON table_name
Instead OF INSERT
AS
BEGIN
INSERT INTO table_name
SELECT *
FROM inserted
WHERE EXISTS (SELECT 1
WHERE condtion = true)
END
您是否尝试使用检查约束而不是触发器? 这是他们的目的。应用简单条件以防止插入/更新不符合业务逻辑的数据
请不要在网络中的多个站点上发布相同的问题。这是。还有:你试过什么?您需要提供更多的细节,例如是否需要对每行计算此条件。许多人错误地认为触发器是每行触发的,而实际上它是每语句触发的,并且一个语句可以影响多行。因此,是否要插入符合条件的行,并放弃不符合条件的行?或者检查条件,如果为真,则插入所有行;如果为非真,则不插入行?