由于没有Sqlserver数组参数,最好的方法是什么?

Lil*_*sey 4 c# sql-server asp.net stored-procedures sql-server-2005

我需要在sqlserver中创建多个记录,每个记录在列A中具有相同的值,但在列B中具有唯一值.我在列中具有列B的值.

我正在使用VS2008,aspnet,c#3.5,sqlserver 2005.

我最好过

选项1.

从c#代码中调用sqlserver中的存储过程,然后在tsql中执行存储过程中的所有处理工作?

这将涉及将c#数组中的所有值组合成一个逗号分隔的字符串,并将字符串作为参数传递给tsql,然后循环并将字符串拆分为单个值并为每个值插入记录,所有这些都在存储过程中.

从我所看到的,如果有必要,这将涉及轻松回滚,但在tsql中非常笨拙的字符串处理.

要么

选项2.

在c#中循环并将数据作为sqlparams从c#一次传递到存储过程以插入每条记录.

即,foreach(myarray中的int键)...插入记录

我可以在睡眠中执行此代码,但如果在处理过程中发生了某些事情,我将如何能够回滚?我应该在一个单独的连接中进行循环.open和connection.close?

这样做有没有其他选择?

Rem*_*anu 7

这里广泛介绍了这个主题:SQL 2005中的数组和列表

  • Erland的文章多年来一直是关于该主题的资源,如果你冒险那个空间,必须阅读. (2认同)