Добрый день! Я новичок в asp.net и sql, и сейчас я работаю над хранимой процедурой, которая должна вставить ORDER_DETAILS в соответствии с ORDER_ID. Когда я впервые сделал хранимую процедуру в SQL Server Management Studio, она работала нормально, но когда я передал ее как localdb в Visual Studio, она внезапно перестает работать. Я пытался запустить хранимую процедуру бесчисленное количество раз, но она все еще не работает.Ошибка хранимой процедуры в localdb
У меня есть таблицы ORDER, ORDER_DETAILS и PRODUCT.
ЗАКАЗА ТАБЛИЦА
Id ИНТ
company_id ИНТ
order_details
Id ИНТ
ORDER_ID ИНТ
PRODUCT_ID ИНТ
company_id ИНТ
Другие атрибуты
ПРОДУКТ
Id ИНТ
company_id INT
Вот мой SP:
SP_INSERT_ORDER_DETAILS
CREATE PROCEDURE [dbo].[SP_INSERT_ORDER_DETAILS]
\t @Product_id int,
\t @Quantity_ordered int,
\t @Status varchar(10)
AS
BEGIN TRANSACTION
BEGIN TRY
\t SET NOCOUNT OFF;
\t DECLARE @iProduct_id int
\t DECLARE @OS_ID int
\t DECLARE @OrderId int
\t SET @OS_ID = (SELECT IDENT_CURRENT('ORDERs'))
\t SET @OrderId = @OS_ID
\t SET @iProduct_id [email protected]_id
\t DECLARE @totalCost decimal(18,2)
\t DECLARE @itotalCost decimal(18,2)
\t DECLARE @iQuantity_ordered int
\t DECLARE @Total_amt_per_item decimal (18,2)
DECLARE @iTotal_amt_per_item decimal (18,2)
\t DECLARE @Total_wdisc_per_item decimal(18,2)
\t DECLARE @iTotal_wdisc_per_item decimal(18,2)
\t DECLARE @Disc_amt_per_item decimal(18,2)
\t DECLARE @iDisc_amt_per_item decimal(18,2)
\t DECLARE @MeasurementId int
\t DECLARE @iMeasurementId int
\t DECLARE @iStatus varchar(10)
\t DECLARE @iCompany_id int
\t SET @totalCost = (SELECT PRODUCTs.TOTAL_COST FROM PRODUCTs WHERE PRODUCTs.Id [email protected]_id)
\t SET @itotalCost = @totalCost
\t SET @iQuantity_ordered [email protected]_ordered
\t SET @Total_amt_per_item = @itotalCost * @iQuantity_ordered
\t SET @iTotal_amt_per_item = @Total_amt_per_item
\t SET @Disc_amt_per_item = 0.00
\t SET @iDisc_amt_per_item = @Disc_amt_per_item
\t SET @Total_wdisc_per_item = @iTotal_amt_per_item - @iDisc_amt_per_item
\t SET @iTotal_wdisc_per_item [email protected]_wdisc_per_item
\t SET @MeasurementId = (SELECT PRODUCTs.MEASUREMENT_ID FROM PRODUCTs WHERE [email protected]_id)
\t SET @iMeasurementId = @MeasurementId
\t SET @iStatus [email protected]
\t SET @iCompany_id = (SELECT COMPANY_ID FROM ORDERs WHERE [email protected])
\t INSERT INTO ORDER_DETAILS(ORDER_ID,PRODUCT_ID,PAYMENT_ID,QUANTITY_ORDERED, [STATUS],MEASUREMENT_ID,DISC_PER_ITEM,DISC_AMT_PER_ITEM,TOTAL_AMT_PER_ITEM,TOTAL_WDISC_PER_ITEM,PAYMENT_STATUS_ID,COMPANY_ID)
\t VALUES (@OrderId,@iProduct_id,0,@iQuantity_ordered, @iStatus, @iMeasurementId,0.00,@iDisc_amt_per_item,@iTotal_amt_per_item,@iTotal_wdisc_per_item,2,@iCompany_id)
\t COMMIT TRANSACTION;
END TRY
BEGIN CATCH
\t ROLLBACK TRANSACTION;
END CATCH
Я уверен, что поставки значения параметров, но все-таки она возвращает ошибку. Что я делаю не так? Надеюсь, кто-то может мне помочь! Благодаря!
Какая ошибка возвращается? – Arulkumar
btw: избегать префикса 'sp_'. Это зарезервировано ... – Shnugo
@Arulkumar Он не выполняет SP должным образом. Когда я запускаю SP, он возвращает значение -6. –