exec carInformation, '@carOutput varchar(50) output', @carOutput output
^bad
exec carInformation '@carOutput varchar(50) output', @carOutput output
^good
но также '@carOutput varchar(50) output'
должно быть целым числом, но вы передаете строку
вам нужно, чтобы вызывающее приложение уже знало значение @carID, и процедура использует это значение для возврата цены.
так что попробуйте что-то вроде:
DECLARE @CarID_x int
,@Price_x decimal(18,2)
SET @CarID_x=123
EXEC ReturnPrice @CarID, @Price_x OUTPUT
PRINT @Price_x
или
DECLARE @Price_x decimal(18,2)
EXEC ReturnPrice 123, @Price_x OUTPUT
PRINT @Price_x
оба приведенных выше примера кода вернут значение столбца Price
для строки dbo.Cars
со значением CarID
123
.
Если вы не знаете CarID
, запустите:
SELECT
CarID, Price
FROM dbo.Cars
и вы получите результирующий набор, содержащий все цены на все автомобили.