0
我有一个行数在8000到10000之间的excel文件。我将它转换为c#中的xml并将它传递给存储过程以将其插入到表中。在sql server中插入批量数据,同时忽略/捕获重复行
插入数据时,如果有一个条目已经存在于数据库中我想忽略/捕获它,而不插入其他行而不打破插入。
我认为的一种解决方案是在表上创建一个插入触发器来检查该行是否已经存在于表中,但这种方法对于10,000行是非常昂贵的。
还有什么办法呢?下面是手短码
SELECT @sql = N'
INSERT INTO Expenses ('+ STUFF(@col,1,1,'') +')
SELECT ' + STUFF(@col,1,1,'') + '
FROM #TEMPTABLE t
PIVOT (
MAX([Value]) FOR AttributeName IN (' + STUFF(@col,1,1,'')+')
) as pvt'
EXEC (@sql)
我很好,没有从临时表中删除重复的数据。我想要的是将重复数据分别捕获到某处,以将其传回给用户。您的解决方案可以帮助我插入非重复的数据,但我如何存储重复的行? – user728630
@ user728630。 。 。你的问题是“我想忽略”,这是这样做的。如果你想做其他事情,那么编写一个查询来查找重复的行并返回它们。 。 。作为一个单独的步骤。 –