2017-02-19 55 views
0

我想寫sp會得到不同數量的參數,但每次有一些參數有價值和其他是空的。如何編寫具有未知數量參數的存儲過程?

該sp用於在db中搜索並返回基於不同參數數量(參數的變化意味着要考慮的字段的變化)的結果。

+0

取決於你u可以使用格式化XML作爲輸入,然後讀取這個XMLñ做所需的SQL –

+0

使用默認的PROC值。 –

+1

在Postgres中,您可以使用'variadic'參數。你正在使用哪個DBMS? Postgres的?甲骨文? –

回答

0

這是我在過去做過的參數是動態的我在C#中創建一個xml並在proc中傳遞了這個xml。在proc中,我讀取該XML,然後基於XML值可以編寫查詢。請注意喲已更新爲每個新的參數以後添加,使您的查詢工作正常

DECLARE @FileXML XML = '<?xml version="1.0"?> 
    <Parameters> 
     <Parameter name ="para1" value="1"/> 
     <Parameter name ="para2" value="4"/> 

    </Parameters>'; 

    --CREATE PROCEDURE dbo.ParseDynamicXML 
    -- @XML XML 
    --AS 
    BEGIN 

     SELECT 
     Parameters.value('@name','NVARCHAR(100)') AS name, 
     Parameters.value('@value','NVARCHAR(100)') AS value 


     FROM @FileXML.nodes('Parameters/Parameter')Catalog(Parameters) 

    RETURN; 
    END; 
相關問題