解决方案 »

  1.   

    DECLARE @SQL VARCHAR(8000)--如果是SQL2005+就用VARCHAR(MAX)
    SET @SQL=''
    SELECT @SQL=@SQL+'EXEC GetGoods '''+Goods_no+''''+CHAR(13)
    FROM TB
    PRINT @SQL类似这样
      

  2.   

    如果存储过程GetGoods返回的是结果集(二维表), 建议用表A关联即可,无需逐个查询,性能不佳.
      

  3.   

    也可通过建立函数的方式,再使用CROSS APPLY连接,如:
    创建函数:usp_Fun_GetGoodNo(@good_no NVARCHAR(50)),
    可执行如下查询:
    SELECT *
    FROM A WITH(NOLOCK) AS a
    CROSS APPLY(
         SELECT * FROM dbo.usp_Fun_GetGoodNo(Goods_no) AS r
    )  AS b