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

SQL Server - BEFORE INSERT トリガー

    最初の詳細テーブルをチェックするトリガーの代わりに次の SQL Server をテストしてください。詳細に欠落しているデータがある場合は、そのテーブルを挿入します。2 番目のステップとして、スキル テーブルへの挿入を続行します。

    CREATE Trigger MySkillsInsteadOfInsert on dbo.MySkills Instead Of Insert
    AS
    Begin
    
        insert into MySkills_details (
            EmpId -- and other relevant columns
        )
        select i.EmpId -- and other relevant columns
        from inserted i
        left join MySkills_details d on i.EmpId = d.EmpId
        where d.EmpId is null
    
        Insert Into MySkills(EmpId) -- and other relevant columns
        Select EmpId -- and other relevant columns
        From inserted i;
    
    End
     から  

    SQL のその他のサンプルについては、トリガーの代わりにサーバー 与えられた例を参照してください。

    しかし、私の言葉に注意してください。スキルを別のマスターテーブルに保持することは、代替設計になると思います。詳細に挿入する前に、通常、マスターが存在するかどうかを確認します。したがって、一般的に、コントロールは通常、ユーザーは最初にマスター データを挿入します。この場合、Skills テーブルのデータです。その後、詳細が入力されます。




    1. SQLServerでのsp_help_scheduleの使用

    2. オラクル:データが見つかりません-しかしデータは存在します

    3. Javaアプリ、MySQL接続を切断した後にスレッドがハングする

    4. SQLで3つのテーブルを結合する