sql >> データベース >  >> RDS >> Sqlserver

Insert ステートメント + トリガーでテーブル データと変数を組み合わせる

    一度に 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
      

    しかし、これには疑問が生じます。なぜすべてのユーザーに同じ座標をコピーするのでしょうか?これは彼らが頻繁に更新するものですか? 最初にいくつかのデフォルト値を設定したいだけですか?




    1. SQLの結果をフィルタリングする方法は、多くのスルー関係になります

    2. MySQLデータベースで移行を実行するとEntityFrameworkエラーが発生します。空間/フルテキスト/ハッシュインデックスと明示的なインデックス順序の誤った使用法

    3. Entity Framework Oracle Timestamp

    4. Oracle:1つのフィールドを更新しながら行をコピーする