#sql #vb.net
Вопрос:
create PROC insert_Items(@Store varchar(20),@ID varchar(20),@Name varchar(20),@IDate varchar(11))
As
Declare @UDates varchar(11),
Declare @Quantity int,
Declare @Defects int
Select @Quantity From inserted
Select @Defects From Inserted
set @UDates = getdate(),
@Remanders = @Defects - @Quantity
Insert Items(StoreName,ProductID,ProductName,Quantity,Defects,InsertedDate,UpdatedDate)
Values(@Store,@ID,@Name,@Quantity,@Defects,@IDate,@UDates)
Вопрос в том, что я хочу получить значение для остатка в моей таблице l
Комментарии:
1. Я действительно вижу Следственный изолятор вместо Остатка, я полагаю, вы это имеете в виду?
Ответ №1:
Если ваша таблица уже содержит поле остатка, просто добавьте его в инструкцию INSERT следующим образом :
Insert Items(StoreName, ProductID, ProductName, Quantity, Defects, InsertedDate, UpdatedDate, Remainder)
Values(@Store, @ID, @Name, @Quantity, @Defects, @IDate, @UDates, @Remainder)
Лучшим вариантом может быть сделать столбец остатка в таблице вычисляемым столбцом. Таким образом, вы всегда будете иметь значение, даже если данные не были добавлены с помощью вашей хранимой процедуры.
Комментарии:
1. Не уверен, что я понимаю, что вы имеете в виду. Ты хочешь сказать, что не можешь поменять столик? Если вам нужно, чтобы @Remanders возвращался из вашей хранимой процедуры, вы можете использовать пример выходного параметра Ральфа или просто, но строку «RETURN @Remanders» в конце хранимой процедуры
2. я расставляю точки на входе через vb.net так что это не может быть вводом.именно таким я хочу, чтобы был конечный результат ….. @Остаток = @Количество — @Дефекты
3. как мне пройти по этому вычисляемому столбцу
4. «ИЗМЕНИТЬ элементы ТАБЛИЦЫ, ДОБАВИТЬ остаток В КАЧЕСТВЕ количества — Дефекты»
Ответ №2:
общая практика заключается в объявлении выходного параметра для процедуры. Затем вызывающий абонент получит это значение в качестве параметра.
например
create proc outputdemo(@invalue int, @outvalue int output)
as
set @outvalue = @invalue * 2
go
declare @myvalue int
exec outputdemo 10, @myvalue output
select @myvalue