これは私が持っているものです。それはMSの例adnのように私はそれが実行されていない理由を把握することはできません。更新トリガーで私に手を差し伸べることはできますか?それはうまくいくように見える
WHERE gm.PlanId = i.[PlandID]
は私が計画表と同じフィールドが含まれますINSERTED印象の下にあった:私は、この行の「PLANID」エラーInvaild列名を取得します。たぶん私は道を離れている - これは私の最初のトリガーです!
PlanIDはPlanテーブルの主キーで、Measuresの外部キーです。私は基本的に、PlanのStatusフィールドの行が更新されたことを確認し、MeasuresのStatusフィールドを更新することを検討しています。
CREATE TRIGGER utr_Plan_Cascade_Status
ON [dbo].[Plan]
for UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF(UPDATE([Status]))
BEGIN
UPDATE dbo.Measures
SET [Status]= i.[Status]
FROM dbo.Measures m, INSERTED i, DELETED d
WHERE m.PlanId = i.[PlandID]
END
END
助けてください。
を持っていた - しかし、唯一** 1 **は'間の結合条件mと 'i' - 基本的に' d'の各行と 'm' /' i'の各行にマッチするデカルト積を作成しているので、行数が多すぎます... SQLMenaceの答えを見てください - * ANSI **結合条件を正しく指定するように強制する 'INNER JOIN'構文の構文を結合します –