Sybase同表触发器创建需求:插入Type=A时自动生成Type=B的记录
Sybase 触发器实现:插入Type=A时自动生成Type=B的记录
以下是满足需求的触发器实现代码,请根据你的实际表结构替换占位符:
CREATE TRIGGER trg_auto_insert_type_b ON your_target_table -- 替换为你的表名 FOR INSERT AS BEGIN -- 关闭计数返回,避免干扰调用逻辑 SET NOCOUNT ON -- 仅处理插入记录中Type为A的条目,生成对应Type=B的记录 INSERT INTO your_target_table ( Type, col1, col2, col3 -- 替换为表中除Type外的所有字段 ) SELECT 'B' AS Type, col1, col2, col3 -- 与上方字段列表一一对应 FROM inserted WHERE inserted.Type = 'A' END GO
重要注意事项:
- 批量插入兼容:基于
inserted系统表处理,支持一次性插入多条Type=A的记录,每条都会自动生成对应的Type=B记录 - 字段一致性:必须保证
INSERT和SELECT中的字段列表完全匹配,遗漏字段会导致插入失败 - 权限要求:创建触发器的账号需要
CREATE TRIGGER权限,同时需具备目标表的INSERT权限 - 递归触发规避:Sybase默认禁用触发器递归(除非手动开启
recursive triggers配置),因此无需担心Type=B的插入会再次触发该触发器
内容的提问来源于stack exchange,提问作者user19589616
相关产品推荐
相关产品推荐

