Sql 插入的行少于预期的行

Sql 插入的行少于预期的行,sql,teradata,Sql,Teradata,我使用此查询返回上述表中的结果,并将其插入SalesReason表中。 当我只运行语句的select部分时,返回的行大于8000,但是 如下图所示,当我将其与insert一起使用时,我只在表中插入了3行。 为什么?发生了什么 INSERT INTO dp_stg_sales.SalesReason (SalesReasonID, TeamName, ReasonType) SELECT (CASE WHEN SalesReasonID_One = 'NULL' THEN 0

我使用此查询返回上述表中的结果,并将其插入SalesReason表中。 当我只运行语句的select部分时,返回的行大于8000,但是 如下图所示,当我将其与insert一起使用时,我只在表中插入了3行。 为什么?发生了什么

INSERT INTO dp_stg_sales.SalesReason (SalesReasonID, TeamName, ReasonType)
SELECT (CASE WHEN SalesReasonID_One = 'NULL' THEN 0 
             ELSE CAST(SalesReasonID_One AS  INTEGER) 
        END) AS SalesReasonID,
       Name_One, 
       ReasonType 
FROM dp_stg_sales.Sales_April_Part1_Filtered
编辑:

这是Select语句的结果

查询结果中有许多重复的行。似乎
dp\u stg\u sales.SalesReason
有一个使用
IGNORE\u DUP\u KEY=ON
选项创建的唯一索引,因此只插入表中不存在的唯一键值。

SELECT
查询结果中有许多重复行。似乎
dp\u stg\u sales.SalesReason
有一个使用
IGNORE\u DUP\u KEY=ON
选项创建的唯一索引,因此只插入表中不存在的唯一键值。

用您正在使用的数据库标记您的问题。@GordonLinoff您能指导我怎么做吗?单击编辑,然后向下滚动至标记部分(位于问题正文区域下方)。为您的数据库(即MySQL、SQL Server)添加标记SalesReason表上有触发器吗?@sarslan没有,我只是创建了该表,并试图将数据插入其中。请将您的问题与您使用的数据库联系起来。@GordonLinoff您能指导我如何做吗?单击编辑,然后向下滚动到标记部分(在问题主体区域下方)。为您的数据库添加标记(即MySQL、SQL Server)SalesReason表上是否有触发器?@sarslan否,我只是创建了表并试图将数据插入表中。您完全正确,先生,基本上我使用的是Teradata,默认情况下,如果没有提及,否则所有表都是设置表(不允许重复),因此通过在创建表格时添加MULTISET解决了这个问题。为什么要标记问题SQL Server如果它是Teradata?@umair.ashfr:切换到
MULISET
将插入所有重复的行,但您真的需要它们吗?您完全正确,先生,基本上我正在使用Teradata,默认情况下,如果没有提及其他内容,则会插入所有重复的行所有表都是集合表(不允许重复),因此通过在创建表时添加MULTISET解决了这个问题。为什么要标记问题SQL Server if is Teradata?@umair.ashfr:切换到
MULISET
将插入所有这些重复行,但您确实需要它们吗?