다른 사람이 작성한 저장 프로 시저를 수정하려고합니다. 기본적으로 proc은 GroupingCode
에 대한 입력 값을 취해 그 그룹 코드를 기반으로 나머지 테이블을 쿼리합니다.저장 프로 시저 수정 중?
그러나 null 값을 계속 반환합니다. 여기에 원래 저장된 프로 시저입니다
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),
에
@GroupingCode varchar(max) = 'AVM'
을 변경했습니다.
어쨌든 변경 후 proc을 다시 실행하면 null 값을 얻게됩니다. 이 proc 파일이 올바로 작성 되었습니까?
사과를 읽기가 어려울 경우 사과드립니다. 나는 Markdown에 익숙하지 않다.
감사합니다.
Oceantrain
'= 'AVM''은 하나가 제공되지 않으면 기본값임을 의미합니다. –
pryor_producttemplate 테이블에 제공된 @GroupingCode가있는 행이 있습니까? 두 번째 쿼리는 SQL 편집기에서 실행하려고하면 아무 것도 반환합니까? – Angelo
응답 해 주셔서 감사합니다. SQL 편집기에서 두 가지 방법으로 실행 해 보았습니다. 기본값은 'AVM'으로 설정됩니다. 내가 'AVM'값을 입력하고 실행하면 결과를 얻습니다. GroupingCode 열에서 다른 값을 입력하면 Null이 반환됩니다. GroupingCode W ProductTemplate 테이블은 정상적인 데이터로 채워집니다. 그래서 나는 내가 그 절차를 시험 할 때 'AVM'을 입력 할 때 나는 단지 불만을 느낀다는 것을 이해하지 못한다. –