私はヘッダと詳細テーブルを持っている状況があります。ディテール表には、カスケード削除を使用したヘッダー表との外部キー関係があります。既に削除されたヘッダテーブルからトリガ内のデータを検索する方法
詳細レコードが削除されると、トリガーを使用して他のテーブルを更新する必要があります。私が抱えている問題は、削除されたレコードの詳細テーブルだけでなく、ヘッダーテーブルからいくつかの情報を取得する必要があることです。詳細レコードとヘッダーレコードを削除すると、トリガーは正常に動作しているように見えます。ただし、カスケード削除のために詳細レコードを削除するヘッダーレコードを削除すると、トリガーが実行されるときにヘッダーレコードが既に削除されており、必要な情報にアクセスできなくなります。
私はトリガーには新しかったので、わからないことがあるのか、これをどのように達成するのかと思っています。ここで
は私のコードです:
ALTER TRIGGER [Detail_Delete]
ON [Detail]
AFTER DELETE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Table UpdateTableType
-- Here is where the problem lies.
-- No records are found here because the Header record isn't found.
INSERT @Table
(HeaderID, UserID)
SELECT d.HeaderID, h.UserID
FROM deleted d
JOIN Header h ON h.HeaderID = d.HeaderID
EXECUTE sp_UpdateSummary
@Table = @Table
END
私はSQL Server 2008 R2を使用していることを忘れていました –