当前位置: 首页 > 知识库问答 >
问题:

赛贝斯ASE 15.7:创建触发器,以便在插入之前我想修改正在插入的行

殷安顺
2023-03-14

我使用赛贝斯ASE 15.7。我希望在插入之前创建触发器,以便在插入之前,我想修改插入行中的一些字段。

请帮忙谢谢!

共有1个答案

尉迟清野
2023-03-14

从触发器的角度来看,您有几个选项:

  • 用于插入触发器;必须针对基表定义;此触发器将在数据插入表后触发;触发器将被编码为针对新插入行的基表执行更新
  • 而不是触发器;必须针对视图定义(视图将根据基表定义);您将对视图执行插入,这将导致而不是触发器触发;触发器将被编码为从插入的伪表中复制/操作数据并将最终数据集写入基表

有关更多详细信息,请参阅创建触发器。

另一种选择是编写一个执行所有插入前更改的存储过程;您可以调用存储的proc(将所有列值作为输入参数传递),而不是直接插入到基表中。[

当然,另一个选择是让应用程序在将最终数据集插入基表之前执行插入前检查和编辑。

 类似资料:
  • 是否可以更改此触发器,以便表获得插入的2个列值(,)? 如何找到的值? 如果它是已知的并且可以插入表,那么它是否也可以插入表? 创建表排序顺序: 创建表图像: 错误消息: 错误1054:“new”SQL语句中的列“sortOrder”未知: 在INSERT ON image之前为每一行开始INSERT to nextcart.sortOrder设置sortOrderId=NULL,sortOrde

  • 也许有人能帮我澄清一下。 我正在尝试编写一个插入前触发器,如果它留空,可以设置关闭。这可能吗? 没有太多代码可显示。我所做的只是创建了一个带有调试语句的简单的插入前触发器,以确保我的触发器在验证规则之前执行。似乎验证规则是第一位的(我显然无法更改它)。触发器永远不会触发。 这是可行的还是不可能的?

  • 在“name=new.user_name”后面发现意外的标记“end-of-statement”。预期的令牌可能包括:“”..sqlcode=-104,sqlstate=42601,driver=4.9.78 SQL code:-104,SQL state:42601

  • 问题内容: 我有两个桌子和。我需要一些行插入从,它被插入之后。我知道这个问题,但我无法解决。请帮忙。 我为触发器编写了以下代码: 现在,当我插入行时,将添加到,但不添加到。它引发以下错误: _消息515,级别16,状态2,过程trigger_UpdateItemDetails,行11 无法将值NULL插入表’dbStockHandling.dbo.tbl_ItemDetails’的列’Purcha

  • null 计划:当用户购买一张票时,我将一条记录插入到适当的表中。例如,如果用户购买: Ticket#1,我将一条记录插入Table1 Ticket#2,我将一条记录插入Table1和Table2 Ticket#3,我将一条记录插入Table1和Table3 问题:如何接收不是类型为1的票证的所有数据,然后拆分参数插入到单独的表中。例如,当我试图为Table2创建触发器时,该触发器只能接收与Tab

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