编辑
在第二行中,我指出结果在语法上不同但在语义上相同。我的问题是,为什么这可能是使用标准 SQL Server 生成脚本造成的。
以下来自数据库的两个不同副本,我们在其中生成了脚本。它们都来自同一个触发器。同样,问题是为什么这可能是由脚本的自动生成导致的,或者这是一个不可能/不可能的问题,因此直接指向手动干预,即故意编辑触发器/脚本。
对于没有更早地以更好的方式解释前提,我最诚挚的歉意。
我试图确定一个客户的错误,我得到了他们的架构副本,触发器等。
在某些情况下,我发现产生完全相同结果的语法差异,例如
BEGIN
UPDATE cd_units
SET shift_expired_status = 0
FROM inserted
WHERE inserted.shift_start >= dbo.get_dts()
AND inserted.unid = cd_units.unid
END
VS
BEGIN
UPDATE cd_units
SET shift_expired_status = 0
FROM inserted
WHERE inserted.unid = cd_units.unid
AND inserted.shift_start >= dbo.get_dts();
END
如您所见,最终结果是相同的,但功能相同。
这不应该是,除非有人在和我玩比利苏格,对吗?但这已经需要对此事进行更深入的调查。