2013-10-15 40 views
0

我正在創建一個存儲過程,我需要有一個包含多個值的變量。我曾嘗試使用表變量,但不是什麼即時通訊尋找。原因是因爲我必須從select查詢中檢查多個值,然後在這些值上使用if語句。在變量上使用多個值

,我需要的是變量的代碼:字符串作爲

If @SplitVal = 1 
Begin 
    Insert into SpecDetailsExt (SrecId, SplitVal, Acknowledged,Required, [Drawings Produced]) 
    Select DISTINCT SpecDetails.SrecId, '1', @MoveToOrder, @RequiredDate, @Drawings 
    FROM SpecDetails INNER JOIN Products ON SpecDetails.ProductRef = Products.CDF_Code_Tx 
    WHERE (SpecDetails.QuoteNo = @Qno) 
End 
ELSE 
Begin 
    Insert into SpecDetailsExt (SrecId, SplitVal, Acknowledged, Required, [Drawings Produced]) 
    Select DISTINCT SpecDetails.SrecId, '1', @MoveToOrder, @RequiredDate, @Drawings 
    FROM SpecDetails INNER JOIN Products ON SpecDetails.ProductRef = Products.CDF_Code_Tx 
    WHERE (SpecDetails.QuoteNo = @Qno) 

    Insert into SpecDetailsExt (SrecId, SplitVal, Acknowledged, Required, [Drawings Produced]) 
    Select DISTINCT SpecDetails.SrecId, '2', @MoveToOrder, @RequiredDate, @Drawings 
FROM SpecDetails 
      INNER JOIN Products ON SpecDetails.ProductRef = Products.CDF_Code_Tx 
    WHERE (SpecDetails.QuoteNo = @Qno) 
End 
+2

你的問題不清楚。 「有多重價值」是什麼意思?一個變量每次只有一個值。你的意思是你需要多個變量嗎?爲什麼臨時表或者多個變量不起作用?另外,從你的代碼中,你並不清楚你期望哪個變量「具有多個值」。如果你的意思是每次插入都需要存儲MoveToOrder,RequiredDate,Drawings和Qno,那麼你可以通過使用臨時表來完成,然後通過加入SrecId合併到你的真正表中(假設這是主要的鍵)。 – mayabelle

+0

我需要'@ SplitVal'有多個值。或者至少有一種方式爲它分配一個值,然後循環並分配一個不同的變量,然後使用該值。 – GeoffWilson

回答

1

通行證?分離列表,然後創建一個用於分割的UDF。或者只是將它分割成代碼,如果你不想要UDF的話。