0
안녕하세요, 어떻게 든 할 수 있습니까? 문을 실행할 때 예외가 발생하면 @Price_Plan이 해제되지 않으므로 임시 쿼리에 @Price_Plan에 액세스 할 수있는 범위가 없습니다. 이 쿼리의 실행마다 이름이 변경되는 테이블을 쿼리하기위한 대안이나 더 좋은 방법이 있습니까?Ad Hoc 쿼리가 로컬 변수에 결과를 할당합니다.
DECLARE @Price_Plan varchar(3), @MNP_Network varchar(3), @GSM_Code varchar(3), @GEO_Dist varchar(6),
@Call_ProdNo varchar(7), @Call_Time datetime, @CallId int, @dtl_call_dur int,
@Volume varchar(10), @Call_Cost int
--Assume CallId has a value
SET @Sql =
'SELECT
@Price_Plan = Price_Plan, @MNP_Network = MNP_Network, @GSM_Code = GSM_Code, @GEO_Dist = GEO_Dist,
@Call_ProdNo = Call_ProdNo, @Call_Time = Call_Time, @dtl_call_dur = dtl_call_dur,
@Volume = Volume
FROM ' + @TableName + '
WHERE CallId = ' + CONVERT(varchar(10),@CallId) + ''
PRINT @SQL
EXEC (@Sql)
방금 복사 한 더 큰 프로 시저에서 쿼리의 일부를 붙여 넣기 어쨌든, 해결하려고하는 문제는 임시 쿼리에서 반환 값에 @Price_Plan을 할당해야한다는 것입니다. 단일 행 – Neil
OUTPUT 매개 변수를 사용하여 다른 예제를 추가했습니다. 이것을 확인하십시오. 이것은 당신이 필요로하는 것이어야합니다. –
나는 테이블을 매개 변수로 지정할 수 있습니까? 나는 시도했다,하지만 그것은 작동하지 않았다, sproc이 그것을 지원하는지 더 궁금해 할 것이다. – Neil