Sane/fast method to pass variable parameter lists to SqlServer2008 stored procedure(将可变参数列表传递给 SqlServer2008 存储过程的理智/快速方法)
问题描述
一个相当全面的大脑查询已经找到了一千零一种传递可变长度参数列表的方法,这些方法涉及以下方法:
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 存储过程的理智/快速方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:将可变参数列表传递给 SqlServer2008 存储过程的理智/快速方法
基础教程推荐
- SSMS 中的权限问题:“对象 'extended_properties'、数据库 'mssqlsystem_resource'、... 错误 229)上的 SELECT 权限被拒绝" 2022-01-01
- 无法解决整理冲突 2021-01-01
- 如何使用 mysql.connector 禁用查询缓存 2022-01-01
- SQL Server 实例在登录协商期间返回无效或不受支持的协议版本 2021-01-01
- 在 SQL 中连接多个表 2021-01-01
- SQL:使用来自具有相同列名的两个表中的数据... 2021-01-01
- 是否可以执行按位分组功能? 2021-01-01
- 需要 MySQL 5.1 中的抽象触发器来更新审计日志 2021-01-01
- SQL 效率:WHERE IN 子查询 vs. JOIN 然后 GROUP 2021-01-01
- 将 SQL Server DateTime 列迁移到 DateTimeOffset 2021-01-01
