【发布时间】:2019-11-27 19:29:32
【问题描述】:
我有一个将值插入表的存储过程。
假设它的名称是usp_InsertTableA,参数为@ID int 和Name varchar(100)。
我需要从另一个存储过程中多次调用此存储过程。我正在考虑将此存储过程称为如下所示
exp usp_InsertTableA
select ID, Name from #tempTable
这是否可以在 SQL Server 中使用表的值执行并将其发送到存储过程中?
【问题讨论】:
-
为什么不在第二个过程中插入呢?微软鼓励你在 sql server 中所做的一切的整个思考方法是有一个基于集合的操作。如果您有 100 行由一个选择查询生成并且您必须将它们插入到一个表中,那么您不会调用存储过程 100 次,您将运行一个一次性插入所有 100 行的插入。这也许可以采取表参数的形式到执行插入的 sp,以便您传递和插入 100 行
-
-
我的意思是像这样 codingsight.com/… - 不像你有它(你必须调用 100 次才能插入 100 行的过程)
-
你想做的当然是可能的。它需要一个循环(如游标)来遍历临时表中的每一行。这并不意味着这是一个好主意,实际上这是一个坏主意。循环非常低效,一遍又一遍地调用相同的过程会削弱你的服务器。
标签: sql sql-server sql-server-2017