SQL 服务器存储过程。 Select 并更新

SQL Server stored procedure . Select and update

我被困住了,需要一些帮助。我正在使用 SQL Server 2017。

我写了一个存储过程,它被拉入 Crystal 报告。该报告是一个拣选清单。打印后我想用 'Y'

更新列 PickingSlip
ALTER PROCEDURE [dbo].[Picking] 
AS
BEGIN
    SET NOCOUNT ON;

    SELECT 
        SorMaster.SalesOrder, SorDetail.SalesOrderLine, SorDetail.StockCode, SorDetail.OrderQty, SorDetail.ShipQty
    FROM
        SorMaster 
    INNER JOIN 
        SorDetail ON SorMaster.SalesOrder = SorDetail.SalesOrder
    WHERE
        SorDetail.OrderQty = SorDetail.ShipQty 
        AND (PickingSlip = '')

    UPDATE SorDetail
    SET PickingSlip = 'Y'
    WHERE
        SorDetail.OrderQty = SorDetail.ShipQty 
        AND PickingSlip = ''
END

报表为空白。更新正在运行,所以我猜 SP 已完成,然后将输出生成到 Crystal 报告中,这就是为什么我没有看到任何内容的原因。

如何在更新的同时获得输出?

Crystal 不知道应该使用 SP 的哪一部分作为结果集。 也许您可以将 SELECT 加载到临时 table 中,进行更新,然后返回临时文件 table.

或者删除更新语句并从子报表中使用的另一个 SP 调用它。

或者使用 UFL 从 Crystal 公式调用更新语句。