SQL Server 2008 Procédure Stockée avec plusieurs paramètres de sortie

J'ai une procédure stockée comme suit:

ALTER PROCEDURE [dbo].[sp_web_orders_insert]
(
    @userId int = default,
    @custId int = default,
    @orderDate datetime = default,
    @orderTotal money = default,
    @statusId int = default,
    @orderReference varchar(50) = default,
    @custReference varchar(50) = default,
    @order_ID INT output,
    @orderReferenceOutput varchar(50) output
)
AS


    SET NOCOUNT OFF;
    INSERT INTO [web_orders] ([user_ID], [cust_ID], [orderDate], [orderTotal], [statusId], [orderReference], [custReference]) VALUES (@userId, @custId, @orderDate, @orderTotal, @statusId , 'PLC' + REPLICATE('0', (7 - LEN((select MAX(order_ID) from web_orders)))) +  CAST((select(max(order_ID)+1) from web_orders) AS VARCHAR(5)), @custReference);

    SELECT @order_ID = @@IDENTITY
    RETURN @order_ID

    SELECT @orderReferenceOutput = 'PLC' + REPLICATE('0', (7 - LEN((select MAX(order_ID) from web_orders)))) +  CAST((select(max(order_ID)+1) from web_orders) AS VARCHAR(5))
    RETURN @orderReferenceOutput 

Pour une raison quelconque, le deuxième paramètre de sortie @orderReferenceOutput ne retourne rien. Le but de cette deuxième paramètre de sortie est de récupérer une colonne j'ai juste inséré dans la base de données.

  • La méthode la plus simple correctif: juste un commentaire votre RETOUR des commandes. Ce n'est pas ce qu'ils sont pour.
InformationsquelleAutor StevieB | 2011-08-09