2012-12-12 49 views
3

我是新來的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 

我想打電話從Student_InputParameterNameStudent_Input_Details爲它的默認值輸出i一張桌子。我正在嘗試以下查詢,但我得到以下錯誤:

Msg 201, Level 16, State 4, Procedure Getparameterdefaultvalues, Line 0
Procedure or function 'Getparameterdefaultvalues' expects parameter '@ParameterValue', which was not supplied.

我相信我在這裏丟失了重要的東西。

我的查詢如下。我正在學習,這可能是一個簡單的問題。 THX ........

CREATE PROCEDURE Getparameterdefaultvalues 
(
    @ParameterName varchar(50) , 
    @ParameterValue varchar(50) OUT 
) 
AS 
BEGIN 
    SELECT @ParameterValue = DefaultValue FROM ParameterInput_Values 
    WHERE [email protected] 
END 
DECLARE @ParameterValue varchar(50) 
EXEC Getparameterdefaultvalues @ParameterName = 1, @ParameterValue OUTPUT 
PRINT 'Result is: ' + @ParameterValue 

我需要像結果(即ParameterName只能顯示在運行時的默認值):

ParameterName ParameterValue  
---------------------------------- 
FirstName   John 

我已經試過其他博客,但不能解決此問題。道歉如果我的問題不是很清楚。任何幫助將是偉大的! THX

+2

請使用{}按鈕正確格式化代碼示例。 –

回答

7

相當簡單和容易:你的存儲過程,預計兩個參數 - @ParameterName@ParameterValue - 但你的電話僅供一個 ...

你應該打電話給你的存儲過程是這樣的:

DECLARE @ParameterValue varchar(50) 

EXEC Getparameterdefaultvalues @ParameterName = 1, @ParameterValue = @ParameterValue OUTPUT 

PRINT 'Result is: ' + @ParameterValue 

另外:您將檢索到的值作爲輸出參數返回 - 因此您將單個值返回到變量中 - 您'沒有找回結果集(行/列)。

+0

嗨,我試着用你的查詢,但我得到以下錯誤:(必須通過參數2號和後續參數'@name = value'。'窗體'@name = value'後,所有後續參數必須以'@name = value'的形式傳遞。)........... – Joy1979

+0

@ Joy1979:更新了我的響應 - 您正在使用哪個**版本的** SQL Server? –

+0

我正在使用SQL2008r2..thx – Joy1979

相關問題