因此,我在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