Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 导入后如何执行触发器?_Sql_Sql Server - Fatal编程技术网

Sql 导入后如何执行触发器?

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…它正在工作(我的触发器已执行)您可能希望使用插入行中的数据 所以您的查

如何在将数据导入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…
它正在工作(我的触发器已执行)

您可能希望使用插入行中的数据

所以您的查询看起来像


更新 我的桌子 设置 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个字符