嵌入式SQL用于高级语言(主语言)和数据库的交互。高级语言用于客户端,实现界面及与用户的交互。SQL语言用于后台数据库,主语言将变量值传给SQL,或SQL将值传给主语言,是通过主变量来实现的,主语言需要对SQL语句的执行状态(是否执行成功、查询结果的记录数等)进行检查以确定下一步的处理,需要DBMS将SQL语句执行状态写入SQL主语言从中读取;游标通信区(即SQLCA),可以将SQL查询到的多条记录逐条提取赋给主变量,交由主语言处理。
触发器是一种特殊类型的存储过程,不由用户直接调用。创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行。触发器可以查询其他表,而且可以包含复杂的 SQL语句。它们主要用于强制服从复杂的业务规则或要求。例如,您可以根据客户当前的帐户状态,控制是否允许插入新订单。触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。用户执行SELECT语句时是不能激活触发器的只能通过update,insert,delete语句时才能激活触发器。