我正在运行SQL查询,我在表中搜索具有特定参数的所有ID . 对于这个例子,我们称之为指示符=“已锁定” .
(样本数据)
所以我运行一个查询......
SELECT ID FROM tableOne WHERE Status = 'locked'
得到这个结果:
我现在需要将从此查询收集的所有结果传递到存储过程,该存储过程只允许我一次传入一个ID .
是否可以运行我的查询,作为此存储过程的参数?
而不是这个:
exec spDeleteLocked
@id = 'X1234'
exec spDeleteLocked
@id = 'G2321'
exec spDeleteLocked
@id = 'L2312'
做这样的事情:
exec spDeleteLocked
@id = 'SELECT ID FROM tableOne WHERE Status = 'locked'
If not :有没有办法让我一遍又一遍地将查询结果返回给存储过程?根据我的同学们的说法,这在SQL中是不可能的 .
1 回答
您可以将它们作为table valued parameter传递
然后在查询中使用带有内部联接的TVP进行过滤 .