編集
結果が構文的には異なるが意味的には同一であることを示すのは 2 行目です。私の質問は、これが標準の SQL Server Generate スクリプトを使用した結果である理由です。
以下は、スクリプトを生成したデータベースの 2 つの異なるコピーからのものです。どちらも同じトリガーからのものです。繰り返しになりますが、なぜこれがスクリプトの自動生成に起因するのか、またはこれは不可能/ありそうもないことであり、手動による介入、つまり意図的なトリガー/スクリプトの編集を直接指しているのかという問題です。
以前に前提をより適切に説明しなかったことを心からお詫び申し上げます。
クライアントでエラーを突き止めようとしていて、スキーマのコピー、トリガープロシージャなどを取得しました。
場合によっては、まったく同じ結果が得られる構文上の違いを見つけています。
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
ご覧のとおり、最終結果は同じですが、機能的には同じです。
誰かが私とビリーサガーをしている場合を除き、これはすべきではありませんよね? しかし、これはすでにこの問題のより深い調査を保証しています。