Sql server 从MySQL到SQL Server触发器

Sql server 从MySQL到SQL Server触发器,sql-server,Sql Server,有人能帮我把这个转换成SQL server触发器吗 创建一个触发器,该触发器将在发生更新时导致错误,该更新将导致加薪超过当前薪资的10% CREATE TRIGGER RAISE_LIMIT AFTER UPDATE OF SALARY ON EMPLOYEE REFERENCING NEW AS N OLD AS O FOR EACH ROW WHEN (N.SALARY > 1.1 * O.SALARY) SIGNAL S

有人能帮我把这个转换成SQL server触发器吗

创建一个触发器,该触发器将在发生更新时导致错误,该更新将导致加薪超过当前薪资的10%

CREATE TRIGGER RAISE_LIMIT
     AFTER UPDATE OF SALARY ON EMPLOYEE
     REFERENCING NEW AS N OLD AS O
     FOR EACH ROW
     WHEN (N.SALARY > 1.1 * O.SALARY)
            SIGNAL SQLSTATE '75000' SET MESSAGE_TEXT='Salary increase>10%' 

在SQL Server中,每个触发器只在每条语句中运行一次,而不是在每行中运行一次,并且插入和删除的伪表分别包含行的新版本和旧版本。您必须在主键上加入这些,以匹配版本

请记住,这些表可能包含多行或不包含行。UPDATE函数可以告诉您UPDATE命令中是否存在列,但不会告诉您是否更改了任何行

触发器在与更新相同的事务中运行,错误将导致立即回滚所有行。不要尝试自己回滚,这将导致虚假的事务错误。而是使用投掷

,您应该向他们咨询进一步的语法

对员工创建触发加薪限额 更新后 像 如果更新严重 并选择1 从插入i 在d.ID=i.ID上加入已删除的d 其中i.SALARY>1.1*d.SALARY 开始 投入75000,N‘加薪>10%’,0; 终止 去
表的主键是什么,您将需要基于该键连接插入和删除