2011-06-07 191 views
3

什么是传递一个字符串数组从.NET应用程序到SQL Server 2005存储过程是最好的,最优选(如果可能的话,高效)的方式?将数组传递给存储过程

1)传递字符串的阵列作为逗号或分号分隔的字符串,并将其解析为一个临时表?

2)将数组作为XML和使用SQL Server 2005和的方法将其解析到一个临时表?

3)写入一个ancilliary存储过程以单独和具有.NET调用它的阵列中的每个元件处理每个字符串?

4)其他...什么?

我想说的解决方案2)是最优雅的一个,但肯定不是最有效的......是吗?

+0

数组应该多大--10行还是1mln? – Dalex 2011-06-07 12:04:08

+0

在正常的情况下,它会很小,但我不能限制它。 – 2011-06-07 12:08:32

+2

SQL Server 2005中的数组和列表。http://www.sommarskog.se/arrays-in-sql-2005.html – 2011-06-07 12:22:55

回答

1

这取决于您的要求。

  1. 在情况下,我输入,然后通过XML和使用SQL Server 2005的方法将其解析到一个临时表

  2. 如果记录不散装的,我可以用以分号分隔的字符串。

  3. 如果是喜欢你有这样的多重身份的基础上,筛选记录一些枚举值然后我可以使用

Good and Bad points about array passing

希望这会帮助你。 :)