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

SQL ServerのトリガーでINSERTの値を編集するにはどうすればよいですか?

    挿入後トリガーを使用します。 insertedから参加する Tbへの疑似テーブル 主キーに。次に、descの値を更新します。次のようなもの:(ただし、コンパイルされない場合があります)

    CREATE TRIGGER TbFixTb_Trg 
    ON  Tb  
    AFTER INSERT 
    AS  
    BEGIN 
        UPDATE Tb
        SET DESC = SomeTransformationOf(i.DESC)
        FROM Tb
        INNER JOIN inserted i on i.Id = Tb.Id
    END  
    GO
    

    このトリガーは、挿入が行われた後、insertの前に発生します ステートメントが完了します。したがって、新しい誤った値はすでにターゲットテーブルに配置されています。このトリガーは、列の追加、削除などの際に変更する必要はありません。

    警告 整合性制約は、アフタートリガーが起動する前に適用されます。したがって、DESCの適切な形式を適用するためのチェック制約を設定することはできません。これは、トリガーが何かを修正する前にステートメントが失敗する原因になるためです。 (この段落を信頼する前に再確認してください。トリガーを作成してからしばらく経ちました。)



    1. MySQLのSELECTINTOとINSERTINTOの違い

    2. SQLを使用して単語ごとに文字列を逆にする

    3. 1つのmysql_queryで複数のSQLステートメントをどのように実行しますか?

    4. フィールドコンテンツの末尾の空のスペースを削除する