当前位置: 首页 > 面试题库 >

如何中止触发器中多行的插入

汪学真
2023-03-14
问题内容

使用sql Server2005。我声明了一个触发条件,该触发条件被触发为“ AFTER
INSERT,UPDATE”,在此触发条件下,我使用WHILE和CURSOR在INSERTED表的行上循环。当我找到不满足特定条件的行时:

我希望触发器引发错误,并且不要插入任何触发触发器的行(甚至不包括那些已经满足我条件的行)。<-–我不知道该怎么做!

您能告诉我如何增加错误并防止插入吗?


问题答案:

使用回滚

IF <some condition>
BEGIN
   RAISERROR ('condition doesn't satisfy something', 16, 1)
   ROLLBACK TRANSACTION
END


 类似资料:
  • 我写了这个触发器,但它不工作,我执行了这个错误: 11:24:11创建触发器check_venduti在INSERT ON venduti之后,对每一行开始SELECT count(*)作为num_rows FROM prodotto(其中COD_PRODOTTO=New.COD_PRODOTO如果numrows<0,则发出“Error”信号,结束错误代码:1064)。您的SQL语法有错误;检查与

  • 问题内容: 我有一个表,其中有列,列和许多其他列 我希望列支持Unicode的最大长度可以容纳700个Unicode字符。我无法设置,因为MYSQL仅对唯一列支持最大765字节的长度,而Unicode需要3个字节,因此我需要2100字节(700 * 3)唯一列。 因此,解决方案是创建一个触发器,以防止用户插入重复项。例如,如果用户在表中插入“ ”(我们将不区分大小写),则Mysql将完全中止包含该

  • 问题内容: 我有一个包含URL和代表其参数的字符串的表。问题是我希望url和parameterstring是表的唯一约束-aka没有条目可以具有相同的url AND parameter string。参数字符串可以是任意长度(长于800bytes左右,这是MySql键的最大长度,因此我不能使用Unique(url,params),因为它会引发错误…)。 我曾考虑过使用触发器来执行此操作,但是如果触

  • 问题内容: 我有一个包含多个记录的表: 用户名(例如“ TOM”) Question_ID(例如“ q002”) 答案(例如“ D”) 我想创建一个触发器,以便没人可以两次提交相同问题的答案。它仅 是触发器 。 问题答案: 创建触发器

  • 我们在Jenkins中使用gerrit-trigger,当一个新的变更集被推送审查时,构建被触发。 现在我们要介绍管道,并在供应链管理中使用定义管道的解决方案 因此我们希望当构建被触发时,下面的管道插件可以工作来检查这个refspec

  • 问题内容: 因此,我是SQLite的SQL Server新手,我习惯于使用New | Old关键字。我已经看到有人使用该值引用新创建的行,但这仅适用于插入而不是更新。如何获得类似此查询中使用的内容的信息? 问题答案: 插入也将适用于更新。一个更新的行将被视为已删除的行和插入的行。因此,您可以检查以前的状态和现在的状态。