触发器不会执行存储过程

橘子哥布林

我有以下触发器:

USE SomeDB
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [Staging].[RunPivot15] 
ON [Staging].[UriData]
AFTER INSERT, UPDATE 
AS 
BEGIN
    SET NOCOUNT ON
    EXEC [Staging].[PivotData]
END

它不会着火。相关表每五分钟接收大约 30 行。从那时起,我被困住了。我一直在阅读,因为插入了不止一行,我必须运行游标。我试过光标,但也不能让它工作。

你能建议这里最好的方法是什么吗?

TIA

安德烈·尼科洛夫

触发器不运行的可能性很小。在触发器中的过程调用周围添加几个打印语句,最终也在您的存储过程中。这将帮助您在 Management Studio 中运行更新语句以触发触发器时跟踪执行情况。

USE SomeDB
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO    

ALTER TRIGGER [Staging].[RunPivot15] 
ON [Staging].[UriData]
AFTER INSERT, UPDATE 
AS 
BEGIN
    SET NOCOUNT ON
    PRINT 'Before call.'
    EXEC [Staging].[PivotData]
    PRINT 'After call.'
END

然后在 Management Studio 中运行更新语句并检查消息选项卡以查看您的消息是否已打印。

update Staging.RunPivot15 set SomeColumn = SomeColumn where SomeColumn = SomeValue

不,您不需要游标。当你的触发器被执行时,如果不止一行受到影响,插入/删除的伪表中也会有多行。在您的情况下,您也不会读取更新了哪些行,因此只需运行该过程。如果您需要知道究竟哪些行被修改,那么编写代码以基于集合的方法处理它们(一次所有行)。在数据库中使用游标循环实际上从来都不是一个好主意。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从MySQL触发器/存储过程执行Shell脚本/命令

来自分类Dev

从DocumentDB存储过程触发触发器

来自分类Dev

触发器在执行过程中遇到错误

来自分类Dev

如何忽略触发器中存储过程的结果集?

来自分类Dev

MYSQL:如何从存储过程创建触发器

来自分类Dev

火鸟将触发器更改为存储过程

来自分类Dev

SQL触发器存储过程编译错误

来自分类Dev

使用 mariabackup 备份触发器、函数和存储过程

来自分类Dev

是否可以在触发器执行过程中获取有关触发器的信息?

来自分类Dev

SQL Server 存储过程:等待删除的触发器完成,然后再继续该过程

来自分类Dev

触发器未执行

来自分类Dev

在删除触发器之前不会触发

来自分类Dev

MYSQL:过程和触发器错误

来自分类Dev

PL-SQL:在过程中执行触发器

来自分类Dev

如何扩展Liquibase以使用存储过程,函数和触发器生成更改日志?

来自分类Dev

SQL Server 2008在插入后创建触发器...返回ID ...称为存储过程

来自分类Dev

Informix-导出和导入触发器和存储过程的工具

来自分类Dev

如何在触发器或存储过程中使用两个更新语句

来自分类Dev

如何防止从触发器或存储过程保存到数据库?

来自分类Dev

在调用存储过程中触发器未出现RaiseError

来自分类Dev

使用存储过程中的值更新触发器中的表

来自分类Dev

阶乘函数错误 - 超出最大存储过程、函数、触发器或视图嵌套级别

来自分类Dev

侦听postgres的更新python文件会通知触发器,而在更新过程中不会丢失任何触发器

来自分类Dev

触发调用存储过程的触发器正在更新表上的每个数据,而不是仅更新一个

来自分类Dev

触发器不会更改背景

来自分类Dev

Oracle触发器不会更新

来自分类Dev

存储的触发器中更新表的执行查询问题

来自分类Dev

导入后如何执行触发器?

来自分类Dev

sql更新触发器未执行

Related 相关文章

  1. 1

    从MySQL触发器/存储过程执行Shell脚本/命令

  2. 2

    从DocumentDB存储过程触发触发器

  3. 3

    触发器在执行过程中遇到错误

  4. 4

    如何忽略触发器中存储过程的结果集?

  5. 5

    MYSQL:如何从存储过程创建触发器

  6. 6

    火鸟将触发器更改为存储过程

  7. 7

    SQL触发器存储过程编译错误

  8. 8

    使用 mariabackup 备份触发器、函数和存储过程

  9. 9

    是否可以在触发器执行过程中获取有关触发器的信息?

  10. 10

    SQL Server 存储过程:等待删除的触发器完成,然后再继续该过程

  11. 11

    触发器未执行

  12. 12

    在删除触发器之前不会触发

  13. 13

    MYSQL:过程和触发器错误

  14. 14

    PL-SQL:在过程中执行触发器

  15. 15

    如何扩展Liquibase以使用存储过程,函数和触发器生成更改日志?

  16. 16

    SQL Server 2008在插入后创建触发器...返回ID ...称为存储过程

  17. 17

    Informix-导出和导入触发器和存储过程的工具

  18. 18

    如何在触发器或存储过程中使用两个更新语句

  19. 19

    如何防止从触发器或存储过程保存到数据库?

  20. 20

    在调用存储过程中触发器未出现RaiseError

  21. 21

    使用存储过程中的值更新触发器中的表

  22. 22

    阶乘函数错误 - 超出最大存储过程、函数、触发器或视图嵌套级别

  23. 23

    侦听postgres的更新python文件会通知触发器,而在更新过程中不会丢失任何触发器

  24. 24

    触发调用存储过程的触发器正在更新表上的每个数据,而不是仅更新一个

  25. 25

    触发器不会更改背景

  26. 26

    Oracle触发器不会更新

  27. 27

    存储的触发器中更新表的执行查询问题

  28. 28

    导入后如何执行触发器?

  29. 29

    sql更新触发器未执行

热门标签

归档