【发布时间】:2016-11-09 02:52:42
【问题描述】:
我有一个名为@workorders 的表变量,该表由查询填充:
DECLARE @workorders table
(id_workorder VARCHAR(100));
INSERT INTO @workorders SELECT DISTINCT(id_workorder) FROM CampaingControl WHERE id_campaing = @id;
--get each record of the table @workorders and delete of another table
然后,我想要的是遍历表@workorders的每条记录,并删除一条具有当前记录值的记录。
我要删除记录的表叫WorkOrders,这个表有一列叫id_workorder,例如:
假设表变量@workorders有3条记录:
- OT-001-16
- OT-002-16
- OT-005-16
我需要实现一种 while 循环,以获取表 @workorders 上的每条记录并删除表 WorkOrders 上的每条记录,其中 id_workorder = @workorders (id_workorder VARCHAR(100))(Current record)。
【问题讨论】:
-
当前记录是什么意思?你如何在
workorders表中识别它? -
@vkp 你能再检查一下这个问题吗?
-
请注意,临时表 (
#WorkOrders) 通常比表变量 (@WorkOrders) 好,因为表变量没有统计信息。更多细节在这里blogs.msdn.microsoft.com/naga/2015/05/10/…
标签: sql sql-server tsql sql-delete table-variable