Sql 导入后如何执行触发器?
如何在将数据导入MYTABLE后执行我的触发器Sql 导入后如何执行触发器?,sql,sql-server,Sql,Sql Server,如何在将数据导入MYTABLE后执行我的触发器 CREATE TRIGGER trigger_class_id ON MYTABLE AFTER INSERT AS UPDATE MYTABLE SET CLASS_ID = SUBSTRING(CLASS_NAME, 1, 4) 我已尝试使用此触发器导入,但我的CLASS\u ID未替换为CLASS\u NAME 但是如果我使用insert-into…它正在工作(我的触发器已执行)您可能希望使用插入行中的数据 所以您的查
CREATE TRIGGER trigger_class_id
ON MYTABLE
AFTER INSERT
AS
UPDATE MYTABLE
SET CLASS_ID = SUBSTRING(CLASS_NAME, 1, 4)
我已尝试使用此触发器导入,但我的CLASS\u ID
未替换为CLASS\u NAME
但是如果我使用
insert-into…
它正在工作(我的触发器已执行)您可能希望使用插入行中的数据
所以您的查询看起来像
更新 我的桌子 设置 CLASS_ID=插入的i中的子字符串(i.CLASS_名称,1,4)
希望这有帮助。:) 批量导入操作应仅对具有INSERT的表执行触发器,而不是对支持多行插入的触发器执行触发器 如果您正在为导入使用BCP命令,则可以使用限定符-h“FIRE\u TRIGGERS” 请阅读更多关于此的信息 导入导出向导中没有直接选项。一种方法是,您可以保存导入导出向导创建的包,然后编辑包->转到高级编辑器->转到“FastLoadOptions”->将FIRE\u触发器标志设置为true
如果excel数据列经常变化,更好的选择是使用带有限定符的BCP命令-h“FIRE\u TRIGGERS”是否
类ID
字段应始终保留类名称的前4个字符
?如果总是这些字母,你可以用计算列来代替。导入是什么意思?当在mytable中插入一行时,此触发器将始终触发,因此要回答您的问题,执行此触发器所需做的只是将一行插入MyTableThank@unnikrishnan,如何应用-h“fire_TRIGGERS”?我尝试将其应用到我的触发器查询中,但它不起作用。很抱歉,我不理解artikel的用法。谢谢您…我可以在使用sql server导入和导出向导导入数据时使用-h“FIRE_触发器”吗?谢谢您提供的解决方案,但我仍然不知道如何使用FIRE_触发器。我找不到程序包->转到高级编辑器->转到“FastLoadOptions”->将FIRE\u触发器标志设置为true。
我已经使用导入导出向导创建了程序包,但我不知道如何转到高级编辑器和“FastLoadOptions”是。您必须在visual studio中为高级编辑器打开程序包。不管怎样,你找到了。。。伟大的快乐的编码..我想要每一个我有一个新数据(从excel导入),CLASS_ID上的数据替换为CLASS_name中的4个字符