トリガーの完全な初心者...すべてのドキュメントは初心者のものを気にしません。
更新された行を更新したいだけです。以下のトリガーは、テーブル全体を更新します。以下のトリガーは、2 つの列の変更をテストするだけです。
この更新トリガーをテーブル全体ではなく、更新された行のみの更新に制限するにはどうすればよいですか?
ALTER TRIGGER [dbo].[geog_update] ON [dbo].[Site]
FOR UPDATE
AS
SET NOCOUNT ON
IF (UPDATE(Latitude) OR UPDATE(Longitude))
BEGIN
UPDATE Site
SET geog = geography::Point([Latitude], [Longitude], 4326)
WHERE Latitude is not null and Longitude is not null
END
FOR UPDATE、INSERT を使用するだけで、挿入された行に同じトリガーを使用できますか? INSERT が UPDATE を意味しない限り、IF は列の UPDATE() をチェックするため、おそらくそうではありません。