大部分数据库语句的基本语法是相同的,但具体到的每一种数据库,又有些不一样,例如触发器,DB2和SQL Server两种很大的不同。
例如DB2的一个触发器:
CREATE TRIGGER EAS.trName
NO CASCADE BEFORE insert //插入触发器
ON eas.T_user
REFERENCING NEW AS N_ROW //把新插入的数据命名为N_ROW
FOR EACH ROW MODE DB2SQL //每一行插入数据都出发此操作
BEGIN ATOMIC //开始
DECLARE U_xtfidemp1 varchar(36); //定义变量
DECLARE u_xtempcode1 varchar(20);
DECLARE u_xtempcodeCount int ;
DECLARE U_xtfidempCount int ;
DECLARE u_id1 int ;
set U_xtfidemp1=N_ROW.U_xtfidemp;//把新插入的数据赋值给变量
set u_xtempcode1=N_ROW.u_xtempcode;
set u_id1=N_ROW.u_id;
set u_xtempcodeCount= (select count(u_xtempcode) from eas.T_user where u_xtempcode is not null and u_xtempcode=u_xtempcode1 and u_id<>u_id1);
set U_xtfidempCount=(select count(U_xtfidemp) from eas.T_user where U_xtfidemp is not null and U_xtfidemp=U_xtfidemp1 and u_id<>u_id1);
IF u_xtempcodeCount>0 or U_xtfidempCount>0 THEN
SIGNAL SQLSTATE '80000' ('eas.T_user Exceeds u_xtempcode,U_xtfidemp 插入数据时有错误,有重复');
END IF;
END
查看更多关于数据库触发器DB2和SqlServer有哪些区别的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did32748