I have the following stored procedure
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);
SET @order_ID = @@IDENTITY
SET @orderReferenceOutput = select top 1 orderReference from web_orders
But getting syntax issue near select, how can I get back the value for orderReference which I have just inserted ?
Two points:
SCOPE_IDENTITY()instead of@@IDENTITY(see why this is here or Google for it…)SELECTstatement to get your value backSomething like: