将数组传递给存储过程

时间:2011-06-07 11:36:26

标签: sql-server-2005 sql-server-2008 stored-procedures

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

1)将字符串数组作为逗号或分号分隔的字符串传递并将其解析为临时表?

2)将数组作为XML传递并使用SQL Server 2005方法将其解析为临时表?

3)编写一个ancilliary存储过程来单独处理每个字符串并让.NET为数组中的每个元素调用它?

4)其他......什么?

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

2 个答案:

答案 0 :(得分:3)

阅读本文。

Arrays and Lists in SQL Server 2005

其他相关文章: Arrays and Lists in SQL Server

修改 对不起,我没有意识到评论中已经提到过。

答案 1 :(得分:1)

这取决于您的要求。

  1. 如果我正在导入,则传递 XML 并使用 SQL Server 2005 方法将其解析为临时表

  2. 如果记录不是批量记录,我可以使用以分号分隔字符串。

  3. 如果您有一些枚举值,例如根据多个状态过滤记录,那么我可以使用 In

  4. Good and Bad points about array passing

    希望这会对你有所帮助。 :)