2010-02-16 65 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 2010-02-16 12:43:53

+0

直接調用時它顯示一些錯誤,如 你必須聲明@Measure_Code – susanthosh 2010-02-16 13:24:23

+0

的值,你應該在@Qury字符串的開始處包含'EXECUTE',並且你還需要一個空間在這裏結束:'@OPERATION_STATUS輸出' – 2010-02-16 14:43:49

回答

0

你不能字符串傳遞到執行exec( )函數,並期望該字符串中的局部變量將被視爲調用範圍中的變量,無論是傳入proc還是從proc返回。

只要打電話給PROC直接:

exec USP_TRM_MEASURE_EVALUATE @MeasureCode,@Transaction_Date, 
@Spec_Code, @Error_Code output, @Operation_Status output