将变量参数列表传递给SqlServer2008存储过程的Sane/fast方法 [英] Sane/fast method to pass variable parameter lists to SqlServer2008 stored procedure
问题描述
对大脑的一个相当全面的查询已经提出了千一百种传递可变长度参数列表的方法,这些方法涉及以下方法:
A fairly comprehensive query of the brain has turned up a thousand and one ways to pass variable length parameter lists that involve such methods as:
- 基于CLR的将字符串解析为整数列表的方法
- 表值函数需要存在数字"表(wtf?)
- 将数据作为XML传递
- CLR based methods for parsing strings to lists of integers
- Table valued functions that require the presence of a 'Numbers' table (wtf?)
- Passing the data as XML
我们的要求是将两个可变长度的整数列表(最大20个整数)传递给存储过程.上面概述的所有方法似乎都很有趣.
Our requirements are to pass two variable length lists of integers (~max 20 ints) to a stored procedure. All methods outlined above seem to smell funny.
这是必须完成的方式,还是有更好的方法?
Is this just the way it has to be done, or is there a better way?
我刚刚发现了此,这可能符合条件这个问题被骗了
I've just found this, which may qualify this question as a dupe
推荐答案
是的,我肯定会看表值参数.附带的好处是,它可以使您直接对过程的内部使用基于整洁的漂亮实现,而无需进行任何数据按摩.
Yes, I'd definitely look at Table Valued Parameters for this. As a side benefit, it may allow you to use a nice, clean set-based implementation for the innards of your procedure directly, without any data massaging required.
这里也是另一个参考.
这篇关于将变量参数列表传递给SqlServer2008存储过程的Sane/fast方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!