我正在使用存儲過程使用現有過程的輸出來處理公式並計算結果。我正在使用一個臨時表來存儲公式中使用的外部過程的結果,但是我很難讓它按照我想要的方式工作。將結果從存儲過程插入臨時表中並附加數據
我沒有能力改變我正在使用的現有程序。
這裏是我想達到什麼樣的一個簡單的例子:
ALTER PROCEDURE dbo.GET_CUBIC_VOLUME,
@MYITEM varchar(25) = null,
@MY_RESULT decimal(38,2) OUTPUT
AS
SET NOCOUNT ON
DECLARE @MY_HEIGHT decimal(38,2)
DECLARE @MY_WIDTH decimal(38,2)
DECLARE @MY_DEPTH decimal(38,2)
CREATE TABLE #MYVARS (V_NAME varchar(max),V_VAL money)
INSERT INTO #MYVARS (V_NAME,V_VAL) values ('HEIGHT', EXEC GET_ITEM_HEIGHT @MYITEM)
INSERT INTO #MYVARS (V_NAME,V_VAL) values ('WIDTH', EXEC GET_ITEM_WIDTH @MYITEM)
INSERT INTO #MYVARS (V_NAME,V_VAL) values ('DEPTH', EXEC GET_ITEM_DEPTH @MYITEM)
SET @MY_HEIGHT = (SELECT V_VAL from #MYVARS where V_NAME='HEIGHT')
SET @MY_WIDTH = (SELECT V_VAL from #MYVARS where V_NAME='WIDTH')
SET @MY_DEPTH = (SELECT V_VAL from #MYVARS where V_NAME='DEPTH')
SET @MY_RESULT = @MY_HEIGHT * @MY_WIDTH * @MY_DEPTH
SELECT @MY_RESULT
RETURN
我在做插入到臨時表的字符串說,這是什麼問題,與沿來自適當的存儲過程。
如何在不改變現有過程或不必爲每個變量創建臨時表的情況下了解如何實現這一點,將會非常棒。
感謝
請標記dbms used。 (這看起來不像ANSI SQL ......) – jarlh
錯誤是什麼? #MYVARS中是否插入任何內容? – tshoemake
@tshoemake 錯誤是「附近____的語法不正確」,空白爲「高度」,或者我試圖放在表格中的任何東西。當我省略V_NAME的字符串時,會將該字段留空並記錄V_VAL的輔助過程的輸出。我無法弄清楚如何讓兩者合作。 – user3560594