2010-02-16 4 views
0

Может ли один из вас помочь мне преобразовать этот запрос в динамический запросДинамический запрос с выходным параметром

DECLARE @Measure_Code nvarchar(50) 
DECLARE @Transaction_Date datetime 
DECLARE @Spec_Code nvarchar(max) 
DECLARE @Error_Code nvarchar(500) 
DECLARE @Operation_Status bit 
DECLARE @Query nvarchar(1000) 

SET @Measure_Code = 'CFL_WATTS' 
SET @Transaction_Date = 02/16/2010 

PRINT @Transaction_Date 

SET @Spec_Code = 'CFL_Watts = 45' 
SET @Error_Code = NULL 
SET @Operation_Status = NULL 

SET @Query = 'USP_TRM_MEASURE_EVALUATE ' + '@Measure_Code'+','+'@Transaction_Date'+','+'@Spec_Code'+','+ 
       '@Error_Code output'+','+'@OPERATION_STATUSoutput' 

PRINT @Query 

EXEC(@Query) 

Я хочу вывод как

@QUERY = USP_TRM_MEASURE_EVALUATE @MeasureCode,@Transaction_Date, @Spec_Code, @Error_Code output, @Operation_Status output 
+0

почему вы хотите, чтобы построить что в строку и вызова Exec? почему бы просто не называть его напрямую – zapping

+0

При вызове непосредственно он показывает некоторые ошибки, такие как , вы должны объявить значение для @Measure_Code – susanthosh

+0

, вы должны включить 'EXECUTE' в начале строки @Qury, а также вам понадобится место рядом конец здесь: '@OPERATION_STATUS output' –

ответ

0

Вы не можете передать строку в Exec () и ожидаем, что локальные переменные внутри этой строки будут рассматриваться как переменные из вашей области вызова, либо для передачи в proc, либо возврата из proc.

Просто вызвать прок непосредственно:

exec USP_TRM_MEASURE_EVALUATE @MeasureCode,@Transaction_Date, 
@Spec_Code, @Error_Code output, @Operation_Status output 
Смежные вопросы