CREATE TRIGGER st207b ON [dbo].[st207装备完好率单位完好率视图] INSTEAD OF insert AS BEGIN DECLARE @str varchar(400) ,@评估点代码 varchar(40) SELECT @评估点代码=评估点代码 FROM insertedSET @str = (SELECT TOP 1 b.装备完好率 FROM 成绩管理表, inserted b WHERE 成绩管理表.评估点代码 = b.评估点代码) EXEC ('update 成绩管理表 set 参数一=' + @str + ' where 评估点代码=''' + @评估点代码 + '''') END
如果同时插入多条记录:CREATE TRIGGER st207b ON [dbo].[st207装备完好率单位完好率视图] INSTEAD OF insert AS BEGIN --更新成绩管理表 UPDATE 成绩管理表 SET 参数一=B.装备完好率 from 成绩管理表 A join inserted B on A.评估点代码=B.评估点代码--插入记录 --因为是instead of触发器,所以如果你需要向基表插入数据,你需要写出代码END
ON [dbo].[st207装备完好率单位完好率视图]
INSTEAD OF insert
AS
BEGIN
DECLARE @str varchar(400)
,@评估点代码 varchar(40) SELECT @评估点代码=评估点代码 FROM insertedSET @str =
(SELECT TOP 1 b.装备完好率
FROM 成绩管理表, inserted b
WHERE 成绩管理表.评估点代码 = b.评估点代码) EXEC ('update 成绩管理表 set 参数一='
+ @str + ' where 评估点代码='''
+ @评估点代码
+ '''')
END
ON [dbo].[st207装备完好率单位完好率视图]
INSTEAD OF insert
AS
BEGIN --更新成绩管理表
UPDATE 成绩管理表
SET 参数一=B.装备完好率
from 成绩管理表 A
join inserted B on A.评估点代码=B.评估点代码--插入记录
--因为是instead of触发器,所以如果你需要向基表插入数据,你需要写出代码END
非常感谢,但用你上面的方法,还是报了那个错,
好急呀