当前位置: 首页 > 面试题库 >

带有FIRE_TRIGGERS的BULK插入无法执行触发器

裴姚石
2023-03-14
问题内容

我正在使用以下代码批量插入CSV文件:

    BULK
INSERT CustomSelection
FROM 'c:\asd\a1.csv'
WITH
(
FIRSTROW =2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRE_TRIGGERS
)
GO

我具有FIRE_TRIGGERS属性,但触发器仍未执行。触发器肯定有效,因为如果我手动将其插入表中,它将执行。有什么解决的办法吗?


问题答案:

在批量导入操作期间,您的触发器将仅触发一次,因为它被视为影响多行数据的单个语句。

您的触发器应该能够处理一组行而不是单个行。也许这是原因,因为您的手动插入测试正常,并且批量导入失败。

MSDN文章的C部分向您展示如何创建插入触发器以处理多行数据:http : //msdn.microsoft.com/zh-
cn/library/ms190752.aspx

希望能帮助到你。



 类似资料:
  • 在“name=new.user_name”后面发现意外的标记“end-of-statement”。预期的令牌可能包括:“”..sqlcode=-104,sqlstate=42601,driver=4.9.78 SQL code:-104,SQL state:42601

  • 我试图弄清楚是否有可能在<代码> 更具体地说,我有几个多模块项目继承了我们公司范围内的母公司pom。在<代码> 在对一个儿童项目进行了数小时的实验后,我想: 避免在所有模块中执行不必要的拷贝回写,当我在父POM中定义执行拷贝回写时会发生这种情况,并且有在所有模块中创建目标文件夹层次结构的缺点 避免在父POM中未定义执行的情况下,在需要的所有模块中的多个克隆副本中定义执行 一个示例子项目包含以下模块

  • 谁能帮我创建一个触发器,将Sensordata表中的最后一条记录附加到lastssensordata中。我只希望每个ConnectionDeviceId有1个值,并且该值必须是最后插入的值。(它将用于在仪表中显示)。我将在下链接我的sql脚本。

  • 问题内容: 我有一个分区表,该表具有(我认为)适当的触发器和一些约束。不知何故,语句为每行插入2行:一行用于父行,另一行用于适当的分区。 简要的设置如下: 经过进一步的调试,我隔离了导致它的原因:触发器返回了事实,而不是just 。但是,我确实希望我的insert语句返回自动增量,并且如果我只是返回,则不是这种情况。 有什么解决方案?为什么返回会导致这种看似“奇怪”​​的行为? 更新#1 好吧,我

  • 问题内容: 使用sql Server2005。我声明了一个触发条件,该触发条件被触发为“ AFTER INSERT,UPDATE”,在此触发条件下,我使用WHILE和CURSOR在INSERTED表的行上循环。当我找到不满足特定条件的行时: 我希望触发器引发错误,并且不要插入任何触发触发器的行(甚至不包括那些已经满足我条件的行)。<-–我不知道该怎么做! 您能告诉我如何增加错误并防止插入吗? 问题

  • SQLAlchemy 1.4 / 2.0 Tutorial 此页是 SQLAlchemy 1.4/2.0教程 。 上一次: 使用数据 |下一步: |next| 插入带核心的行 使用Core时,SQL INSERT语句是使用 insert() 函数-此函数生成 Insert 表示SQL中的INSERT语句,将新数据添加到表中。 ORM阅读器 -从ORM的角度将行插入数据库的方式在 Session 对