一度に 1 つの行を処理するかのようにトリガーを扱うことはできません。複数値句またはネストされた選択を使用して挿入が発生した場合、トリガーは操作全体に対して 1 回起動されます。つまり、任意の @UserID を 1 つだけ処理することになります。
ここでは、PlaneGPSCoordinates テーブルに正確に 5 つの行があり、それらがすべての新規ユーザーが取得する座標であると想定しています。
CREATE TRIGGER dbo.Matching ON dbo.UserInfo FOR INSERT AS BEGIN SET NOCOUNT ON; INSERT dbo.MatchingInformation(GPS1, GPS2, UserID) SELECT p.GPS1, p.GPS2, i.UserID FROM dbo.PlaneGPSCoordinates AS p CROSS JOIN inserted AS i; END GO
プレ>しかし、これには疑問が生じます。なぜすべてのユーザーに同じ座標をコピーするのでしょうか?これは彼らが頻繁に更新するものですか? 最初にいくつかのデフォルト値を設定したいだけですか?