因此,我在ASP.NET窗體上有一個checkboxlist
。我需要在存儲過程(SQL Server 2008
)中將所選checkboxes
的ID作爲IN
子句的一部分。非常簡單 - 假設用戶選擇1
,2
,4
,7
,那麼我的程序會詢問值爲TranCode IN (1,2,4,7)
。由於我不能動態地執行IN
聲明,並且我不想動態構建查詢,所以我認爲XML將是一個不錯的選擇。SQL Server 2008 XML輸入參數存儲過程傳入「IN」子句值
我正是如此建設VB.NET中的XML字符串 - <chargecode><refnum>1</refnum><refnum>2</refnum></chargecode>
等TranCode
和RefNum
表示相同的領域,他們的交易表和說明表之間只是名稱不同,所以我可以改變refnum
到別的在我的XML中,如果需要的話,但我肯定會使用TranCode
作爲比較列。
在我的存儲過程中,我聲明瞭一個名爲@ChargeCodesXML
的XML變量,它將包含從VB.NET傳入的XML字符串。基本上我需要做的是將所有的refnum字段從XML文件中提取出來,以便與TranCode
進行比較。該程序有幾個連接,一些聚合函數,分組依據,等等,但基本上我想是這樣
SELECT * FROM SomeTable WHERE TranCode IN (SELECT RefNum FROM MyXMLFile)
我一直在尋找周圍,看到了許多複雜的XML查詢,但沒有什麼作爲簡單我需要,所以我有點被我看到的例子所淹沒。有人可以告訴我如何修改我的proc這個非常簡單的比較?
謝謝! 邁克
太棒了!像魅力一樣工作。謝謝! – Mike