sql数据库中有表 inventory,表中有字段 cinvcode,值为1,2,3,4,5,6...
我写了个存储过程gylxqj,这个存储过程中使用到参数 @cinvcode
执行存储过程时,输入一个cinvcode的值比如2,得出一个结果,这样只能输入一个查询一个。
有没有办法把 表inventory中字段cinvcode的所有值赋值给参数@cinvcode,让
存储过程gylxqj依次执行inventory中字段cinvcode的所有值,再把每个值执行的结果 在一张表上体现出来?
我试过用游标,但是一直在循环执行,跳不出来。不知道还有没有其它的方式。
您可以尝试使用子查询或联合查询来为存储过程的参数赋值,将查询结果集直接作为参数传入存储过程中。具体方法如下:
将表 inventory
中的所有 cinvcode
值作为参数传入存储过程中,可以使用以下语句:
EXEC gylxqj
@cinvcode = (SELECT cinvcode FROM inventory)
这里使用了一个子查询获取表 inventory
中所有的 cinvcode
值,并将其作为参数传递给存储过程。
另外一种方法是使用联合查询来获取表 inventory
中所有的 cinvcode
值。类似于以下语句:
EXEC gylxqj
@cinvcode = (SELECT cinvcode FROM inventory
UNION ALL
SELECT cinvcode FROM other_table)
这里使用了一个联合查询获取表 inventory
和 other_table
中的所有 cinvcode
值,并将其作为参数传递给存储过程。
需要注意的是,存储过程 gylxqj
也需要相应地修改,以接受一个包含多个值的参数,并在内部进行循环处理。可以使用游标等方法来实现循环执行。