我是SQL新手并尝试编写存储过程。我很难将默认值作为输出结果。
我有2张桌子:
Student_Input :
InputID SectionID ParameterName Sequence
------------------------------------------------
1 100 FirstName 1
2 100 MiddleName 2
3 100 LastName 3
Student_Input_details :
ParameterName ParameterValue DefaultValue
-----------------------------------------------------
FirstName John 1
FirstName Troy 0
FirstName Mark 0
我尝试从ParameterName
调用Student_Input
,并将Student_Input_Details
的默认值作为一个表中的输出。我正在尝试以下查询,但我收到以下错误:
Msg 201,Level 16,State 4,Procedure Getparameterdefaultvalues,Line 0
过程或函数'Getparameterdefaultvalues'需要参数'@ParameterValue',这是未提供的。
我相信我错过了一些重要的事情。
我的查询如下。我正在学习,这可能是一个简单的问题。 THX ........
CREATE PROCEDURE Getparameterdefaultvalues
(
@ParameterName varchar(50) ,
@ParameterValue varchar(50) OUT
)
AS
BEGIN
SELECT @ParameterValue = DefaultValue FROM ParameterInput_Values
WHERE ParameterName=@ParameterName
END
DECLARE @ParameterValue varchar(50)
EXEC Getparameterdefaultvalues @ParameterName = 1, @ParameterValue OUTPUT
PRINT 'Result is: ' + @ParameterValue
我需要结果(例如ParameterName
应该只在运行时显示其默认值):
ParameterName ParameterValue
----------------------------------
FirstName John
我已尝试过其他博客,但无法解决此问题。道歉如果我的问题没有那么清楚。任何帮助都会很棒!!谢谢
答案 0 :(得分:7)
非常简单易用:您的存储过程需要两个参数 - @ParameterName
和@ParameterValue
- 但您的通话仅提供一个 ...
您应该像这样调用您的存储过程:
DECLARE @ParameterValue varchar(50)
EXEC Getparameterdefaultvalues @ParameterName = 1, @ParameterValue = @ParameterValue OUTPUT
PRINT 'Result is: ' + @ParameterValue
另外:您将检索到的值作为输出参数返回 - 因此您将单个值返回到变量中 - 您没有返回结果集(行/列) )。