如何在将数据导入MYTABLE
后执行触发器?
CREATE TRIGGER trigger_class_id
ON MYTABLE
AFTER INSERT
AS
UPDATE MYTABLE
SET CLASS_ID = SUBSTRING(CLASS_NAME, 1, 4)
我尝试使用此触发器导入,但我的CLASS_ID
未被CLASS_NAME
中的4个第一个字符替换
但如果我使用insert into ...
它正在工作(我的触发器已执行)
答案 0 :(得分:2)
批量导入操作应仅对具有INSERT和INSTEAD OF触发器的表执行触发器,该触发器支持多行插入。
如果您使用 BCP 命令进行导入,则可以使用限定符 -h" FIRE_TRIGGERS"
显式调用触发器详细了解Link
导入导出向导中没有直接选项。一种方法是您可以保存导入导出向导创建的包,然后编辑包装 - >转到高级编辑器 - >转到" FastLoadOptions" - >将FIRE_TRIGGERS标志设置为true。
如果excel数据列频繁变化,更好的选择是使用 BCP 命令,使用限定符 -h&#34; FIRE_TRIGGERS&#34; < /强>
答案 1 :(得分:0)
您可能希望使用插入行中的数据。
所以你的查询看起来像是
更新 MYTABLE 组 来自插入i的CLASS_ID = SUBSTRING(i.CLASS_NAME,1,4)
希望这会有所帮助。 :)