我尝试使用与源相同的方案将this个表集复制到其他集合。
我在SQL中编写了存储过程,它从TableA接收ID并从B-G复制所有表。 现在我想让TalbeA的每一行调用那个存储过程。我可以使用 CURSOR 或 WHILE 但是,我读到不建议使用CURSOR,并且WHILE比CURSOR慢。 还有其他方法或在这种情况下CURSOR \ WHILE是解决方案吗?
谢谢
答案 0 :(得分:2)
在这种情况下,CURSOR / WHILE很好 - 没有更好的方法来调用每行的sproc。但是,如果这可能会对系统产生影响,那么在运行它时要小心。
如果你可以编写代码,还有一个更好的选择 - 那就是在一堆SQL语句中对TableA及以下的记录执行所有“复制”,完全避免使用游标。总结这个建议 - 基于集合而不是基于行。
答案 1 :(得分:0)
除非在存储过程中执行此复制具有显着优势,否则最好在当前脚本中重写内联复制。
如果您想知道如何实现这一目标,如果您需要维护外键,使用标识列等,您可以查看我对How Can I avoid using a cursor...的回答。