繁体   English   中英

SQL Server:如何将数据表作为输入参数传递给存储过程?

[英]SQL Server: How to pass data table to a stored procedure as an input parameter?

我有一个数据表,该表在我的应用程序中填充了一些用户通过excel文件输入的值。 我的应用程序targer .net框架是2.0,我不能将其更改为3.0或3.5以使用LINQ功能。

因此,我必须将我的数据表值发送到存储过程并在连接操作中提供它们。

这是一个好的解决方案吗? 如果是,我如何将我的数据表作为输入参数发送到存储过程?

谢谢

通过使用表值参数,您可以将数据发送到SQLServer存储过程。 此用户定义类型表示表结构的定义,并与SQLServer 2008和下一版本兼容。

您可以找到有关此msdn aritcle的示例和更多信息

大型复杂:对于大型复杂数据,我可能会将您的数据转换为* .csv文件(如果在Excel中不是那样),请使用.Net将其BCP转换为#temp表,然后在同一个连接上调用proc并让proc始终知道在#temp表中查找数据。 BCP是将大量数据存入SQLServer的禁区方式。

中等大小:如果数据的大小很小,那么您可以将其格式化为XML并将其发送到proc。 以下是使用C# http://www.a2zdotnet.com/View.aspx?Id= 107的简单示例

小型定界:对于小型列表类型的数据,您可能可以将其作为逗号分隔的值字符串发送。 将ID列表发送到proc时非常方便( http://blog.logiclabz.com/sql-server/split-function-in-sql-server-to-break-comma-separated-strings-into- table.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM