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

Sql server 2008 SQL Server:如何将数据表作为输入参数传递给存储过程?,sql-server-2008,stored-procedures,datatable,parameter-passing,Sql Server 2008,Stored Procedures,Datatable,Parameter Passing,我有一个数据表,在我的应用程序中填充了一些用户通过excel文件输入的值。我的应用程序targer.net framework是2.0,我无法将其更改为3.0或3.5以使用LINQ功能 因此,我必须将我的数据表值发送到存储过程,并在联接操作中贡献它们 这是否一个好的解决方案?如果是,如何将数据表作为输入参数发送到存储过程 谢谢通过使用表值参数,您可以将数据发送到SQLServer存储过程。此用户定义类型表示表结构的定义,并与SQLServer2008和下一版本兼容 您可以找到有关此msdn的示例

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

因此,我必须将我的数据表值发送到存储过程,并在联接操作中贡献它们

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


谢谢

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


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

大型复杂数据:对于大型复杂数据,我可能会将您的数据保存到*.csv文件中(如果Excel中还没有),使用.Net将其保存到#temp表中,然后在同一个连接上调用proc,让proc始终知道如何在#temp表中查找数据。BCP是将大块数据放入SQLServer的最快方法

中等大小:如果数据的大小很小,则可以将其格式化为XML并发送到proc。下面是一个使用C#的快速示例

小分隔:对于小列表类型的数据,您可以将其作为逗号分隔的值字符串发送。这在将ID列表发送到进程()时非常方便。

SQL Server的哪个版本?可能重复