我正在修復別人寫的存儲過程。基本上,proc採用GroupingCode
的輸入值,並根據該分組代碼查詢其餘表。修復存儲過程?
但它一直返回空值。原來這裏是存儲過程:
ALTER PROCEDURE [dbo].[GetWebinars] (@GroupingCode VARCHAR(MAX) = 'AVM',
@ItemNumber VARCHAR(MAX) OUT,
@Title VARCHAR(MAX) OUT,
@SubTitle VARCHAR(MAX) OUT,
@ShortDescription VARCHAR(MAX) OUT,
@LongDescription VARCHAR(MAX) OUT,
@ShortImageUrl VARCHAR(MAX) OUT,
@MedImageUrl VARCHAR(MAX) OUT,
@LgImageUrl VARCHAR(MAX) OUT,
@GroupCode VARCHAR(MAX) OUT)
AS
SELECT @ItemNumber = prd.itemnumber,
@GroupingCode = prdtemp.groupingcode,
@Title = t.brochuredesc,
@SubTitle = prdtemp.SubTitle,
@ShortDescription = prdtemp.shortdescription,
@LongDescription = prdtemp.longdescription,
@ShortImageUrl = prdtemp.SmallImagePath,
@MedImageUrl = prdtemp.MediumImagePath,
@LgImageUrl = prdtemp.LargeImagePath
FROM pryor_producttemplate prdtemp
INNER JOIN pryor_prdItmmst prd
ON prdtemp.groupingcode = prd.groupcode
INNER JOIN pryor_topics t
ON prd.itemnumber = t.topiccode
WHERE prdtemp.groupingcode = @GroupingCode
AND t.country = 'U.S.A'
SELECT DISTINCT t.city,
t.country,
t.controlprice,
prd.itemnumber
FROM pryor_producttemplate prdtemp
INNER JOIN pryor_prdItmmst prd
ON prdtemp.groupingcode = prd.groupcode
INNER JOIN pryor_topics t
ON prd.itemnumber = t.topiccode
WHERE prdtemp.groupingcode = @GroupingCode
AND t.country = 'U.S.A'
我改變了第一線,改變
@GroupingCode varchar(max) = 'AVM'
到
@GroupingCode varchar(max),
似乎怪我輸入值將被硬編碼。
無論如何,做出更改並再次執行proc後,我得到了空值。這個過程是否正確寫入?
我很抱歉,如果這很難看。我不熟悉Markdown。
謝謝。
Oceantrain
'='AVM''只是表示如果沒有提供默認值。 –
在表pryor_producttemplate中是否有提供的@GroupingCode?如果您嘗試在SQL編輯器中運行它,第二個查詢是否會返回任何內容? – Angelo
感謝您的回覆。我試圖在SQL編輯器中執行它。默認值設置爲='AVM'。當我執行並輸入值'AVM'時,我得到結果。如果我從GroupingCode列中輸入任何其他值它將返回Null。 GroupingCode和ProductTemplate表格中充滿了健康的數據。所以我不明白爲什麼當我測試這個程序時,只有在進入'AVM'時纔會得到結果。 –