Вам необходимо передать параметры, поскольку ни один из них не имеет значений по умолчанию. Поскольку @p_prefix
является параметром OUTPUT
, для того, чтобы использовать это значение, вам необходимо объявить переменную для передачи в параметр:
DECLARE @p_prefix varchar(3);
EXEC SFT.usp_GetPrefix @p_table = 'MAC_CHEESE', @p_prefix OUTPUT;
--PRINT @p_prefix; --Or whatever you're going to do with the value.
В качестве дополнительного примечания вы можете сделать Ваша процедура значительно короче:
CREATE PROCEDURE SFT.usp_GetPrefix @p_table VARCHAR(30), @p_prefix VARCHAR(3) OUTPUT AS
BEGIN
SET @p_prefix = CASE LEFT(@p_table,3) WHEN 'MAC' THEN 'MAC' ELSE 'UNK' END;
END