Sql server 在SQL Server中编写触发器时如何获取旧值
如何在sql server中实现此脚本:Sql server 在SQL Server中编写触发器时如何获取旧值,sql-server,Sql Server,如何在sql server中实现此脚本: DELIMITER | CREATE TRIGGER after_update_animal AFTER UPDATE ON Animal FOR EACH ROW BEGIN INSERT INTO Animal_histo ( id, sexe, date_naissance, nom, commentaires, espece_
DELIMITER |
CREATE TRIGGER after_update_animal AFTER UPDATE
ON Animal FOR EACH ROW
BEGIN
INSERT INTO Animal_histo (
id,
sexe,
date_naissance,
nom,
commentaires,
espece_id,
race_id,
mere_id,
pere_id,
disponible,
date_histo,
utilisateur_histo,
evenement_histo)
VALUES (
OLD.id,
OLD.sexe,
OLD.date_naissance,
OLD.nom,
OLD.commentaires,
OLD.espece_id,
OLD.race_id,
OLD.mere_id,
OLD.pere_id,
OLD.disponible,
NOW(),
CURRENT_USER(),
'UPDATE');
END |
DELIMITER ;
deleted
表保存更新前的值,inserted
表保存新值<可以为每行输入代码>,因为这将执行批处理操作
CREATE TRIGGER after_update_animal ON Animal AFTER UPDATE
AS
BEGIN
INSERT INTO Animal_histo (
id,
sexe,
date_naissance,
nom,
commentaires,
espece_id,
race_id,
mere_id,
pere_id,
disponible,
date_histo,
utilisateur_histo,
evenement_histo)
SELECT
OLD.id,
OLD.sexe,
OLD.date_naissance,
OLD.nom,
OLD.commentaires,
OLD.espece_id,
OLD.race_id,
OLD.mere_id,
OLD.pere_id,
OLD.disponible,
GETDATE(),
SYSTEM_USER,
'UPDATE'
FROM
deleted AS OLD
END
deleted
表保存更新前的值,inserted
表保存新值<可以为每行输入代码>,因为这将执行批处理操作
CREATE TRIGGER after_update_animal ON Animal AFTER UPDATE
AS
BEGIN
INSERT INTO Animal_histo (
id,
sexe,
date_naissance,
nom,
commentaires,
espece_id,
race_id,
mere_id,
pere_id,
disponible,
date_histo,
utilisateur_histo,
evenement_histo)
SELECT
OLD.id,
OLD.sexe,
OLD.date_naissance,
OLD.nom,
OLD.commentaires,
OLD.espece_id,
OLD.race_id,
OLD.mere_id,
OLD.pere_id,
OLD.disponible,
GETDATE(),
SYSTEM_USER,
'UPDATE'
FROM
deleted AS OLD
END
您正在查找的对象名称已删除。考虑读取触发器的文档:这看起来像MySQL而不是SQLServer,您是试图转换为SQLServer还是问题不正确?您正在查找的对象名称是“代码>删除< /代码>。考虑阅读关于触发器的文档:这看起来像MySQL而不是SQLServer,您是试图转换为SQLServer还是错误地标注问题?