在SQL Server 2008中使用游标有哪些替代方法?

时间:2010-08-04 14:20:52

标签: sql-server-2008 cursor data-import

我一直在创建使用SSIS将数据导入临时表的导入,然后使用存储过程,逐个数据逐步处理数据并将信息插入3个不同的表中。前两个表中的插入是复杂的,因为如果存在具有相同数据的记录,则不会创建记录。无论是否在前两个表中插入记录,都会返回记录或匹配记录的ID以在第3个表上使用。有没有使用光标的替代方法?

3 个答案:

答案 0 :(得分:4)

如果没有看到您当前的代码,很难知道这是否合适,但我会看看

  1. MERGE语句(允许为匹配时的不同情况指定操作“,”当与目标不匹配时“,”当与源不匹配时“)和
  2. OUTPUT子句(允许您捕获新更新的记录以进行处理)。

答案 1 :(得分:2)

希望这方面的一些想法会有所帮助。如果你仍然需要避免光标的帮助,我们需要看到你在光标中进行处理的更好例子。

http://wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them

答案 2 :(得分:0)

这听起来像是用表变量和while循环(多个人经过测试和确认,几乎总是比游标更高效)替换游标的完美候选者。