【问题标题】:The transaction ended in the trigger. The batch has been aborted (on PROCEDURE)事务在触发器中结束。批次已中止(在 PROCEDURE 上)
【发布时间】:2019-05-07 04:42:39
【问题描述】:

我在服务器上运行了 2 个应用程序,即“生产应用程序”和“开发应用程序”。这两个应用程序除了用途没有区别,一个用于开发,另一个用于用户。

“开发应用程序”没有问题,但问题恰恰在“生产应用程序”中。

以下是问题之一: 当我尝试更新数据时,出现错误:

“事务在触发器中结束。批处理已中止”

即使与“开发应用程序”没有代码差异

这是我的代码:

    ALTER PROCEDURE  [dbo].[uspFakultas] 

      @FakultasID varchar(50),
      @Dekan varchar(50),
      @KetuaProgram varchar(50),
      @WakilDekan1 nvarchar(50),
      @stat varchar(20)
    AS 
    SET NOCOUNT ON;
    if @stat = 'delete' and @FakultasID<>''
        begin
            DELETE FROM [dbo].[MasterFakultas]
                  WHERE [FakultasID] = @FakultasID
        end
    else
        begin   
        if @FakultasID='' 
            begin
                INSERT INTO [dbo].[MasterFakultas]
                           Some field .....
                     VALUES
                           some values.....
            end
        else 
            begin
                UPDATE [dbo].[MasterFakultas]
                   SET some data......

                 WHERE [FakultasID] = @FakultasID
            end
    end;

这是php代码

$sqlstr=" exec [dbo].[uspfakultas] '$FakultasID','$Dekan','$NomorSK','$KetuaProgram','$WakilDekan1','$stat'";
$hasil=mssql_query( $sqlstr ) or die(mssql_get_last_message());
print $hasil;

谁能帮帮我?

【问题讨论】:

  • 问题出在触发器上吗?不是 SP - 所以我们需要查看触发代码。
  • 我没有触发码
  • 所以,我必须添加一个触发器.. 好的,谢谢,我会试试的
  • 不,我确定,我没有任何触发代码

标签: php sql sql-server procedure


【解决方案1】:

您在存储过程中操作的任何表是否有任何复制?

我已经看到,在一些应用程序中,复制触发器会导致此问题。

【讨论】:

  • 没什么,但我有数据库复制。
  • 您能否检查并告诉我,复制是否在数据库上创建了任何触发器?
  • 我已经检查过了,那里没有触发器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-09
  • 2017-04-19
  • 2017-07-15
  • 1970-01-01
相关资源
最近更新 更多