Триггер не вызывается, когда изменения выполняются в базе данных через хранимую процедуру - PullRequest
0 голосов
/ 29 июня 2019

У меня следующая проблема: мой триггер работает хорошо, когда я вставляю записи в SQL Server Management Studio. Но когда я вставляю записи с веб-сайта через хранимую процедуру, мой триггер не срабатывает.

Вот мой код контроллера

[HttpPost]
public ActionResult JobWorkOutNew(PRCJobWorkOut p)
{
        if (p.SCODE != null)
        {
            var spres = Db.Sp_PRCJobworkOut_Insert(p.JobChallan, Convert.ToDateTime(DateTime.Today.ToShortDateString()), p.SCODE, p.ExciseChallan, p.JOBWorkID, p.Weight, p.ApproxValue, p.Packages, p.Transporter, p.LRNO, p.LRDT, p.VehicleNo, p.DispatchTo, p.Freight, p.Remarks, p.GoodType, p.IGST, p.SGST, p.CGST, p.Unit);

            if (spres == 1 || spres == -1)
            {
                if (p.SubItems.Count() > 0)
                {
                    var subitm = p.SubItems.ToList();

                    for (var i = 0; i < p.SubItems.Count(); i++)
                    {
                        var sb = subitm[i];
                        var spressub = Db.Sp_PRCJobworkOutSub_Insert(p.JobChallan, i + 1, sb.PRCNO, sb.HEATNO, sb.QTY, sb.Weight, sb.Status);

                        if (spressub == 1 || spressub == -1)
                        {
                            continue;
                        }
                        else
                        {
                            this.AddToastMessage("Error", "Something went wrong in insert with sub PRC Jobwork", ToastType.Error);
                            break;
                        }
                    }

                    var global = Db.GlobalSettings.FirstOrDefault();
                    global.JOBChallan = (Convert.ToInt32(global.JOBChallan) + 1).ToString();

                    Db.SaveChanges();

                    return Json(spres, JsonRequestBehavior.AllowGet);
                }
            }
        }

        return View();
}

Это мой триггер для таблицы PrcJobworkOutSub в базе данных:

ALTER TRIGGER [dbo].[PRCJOBChallanStatus] 
ON [dbo].[PRCJobWorkOutSub] 
AFTER INSERT, UPDATE, DELETE
AS 
BEGIN
    SET NOCOUNT ON;

    UPDATE P 
    SET P.status = (SELECT MIN(Status) 
                    FROM PRCJOBWorkOUTSub 
                    WHERE PRCJOBWorkOUTSub.JobChallan = P.Jobchallan) 
    FROM PRCJOBWorkOUT P 
    FULL OUTER JOIN PRCJOBWorkOUTSub S on P.JobChallan = S.JobChallan
END
...