事务在触发器中结束。批次已中止(在PROCEDURE上)

时间:2019-05-07 04:42:40

标签: php sql sql-server procedure

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

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

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

  

“事务在触发器中结束。批已中止”   enter image description here

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

这是我的代码:

    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;

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您在存储过程中操作的任何表上是否有任何副本?

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