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

ストアドプロシージャで挿入/削除されたテーブルをどのように使用しますか?

    テーブル値パラメーター トリガーから挿入/削除された値を保存し、それをprocに渡します。たとえば、プロシージャに必要なのがUNIQUE FileID'sだけの場合 :

    CREATE TYPE FileIds AS TABLE
    (
        FileId INT
    );
    
    -- Create the proc to use the type as a TVP
    CREATE PROC commonProc(@FileIds AS FileIds READONLY)
        AS
        BEGIN
            UPDATE at
                SET at.DateVersion = CURRENT_TIMESTAMP
            FROM ATable at
                JOIN @FileIds fi
                ON at.FileID = fi.FileID;
        END
    

    次に、トリガーから挿入/削除されたIDを渡します(例:

    )。
    CREATE TRIGGER MyTrigger ON SomeTable FOR INSERT
    AS
        BEGIN
            DECLARE @FileIds FileIDs;
            INSERT INTO @FileIds(FileID)
                SELECT DISTINCT FileID FROM INSERTED;
            EXEC commonProc @FileIds;
        END;
    


    1. MysqlはintをMACに変換します

    2. C#アプリケーションでSQL Serverデータベースのすべてのテーブルの名前を取得できますか?

    3. .NETおよびMySQLエラー-SSPIの呼び出しに失敗しました...受信したメッセージが予期しないか、形式が正しくなく、関数に提供されたバッファーが小さすぎました

    4. PHP PDOを使用してMySQLデータベースからオブジェクトデータを解析するにはどうすればよいですか?