将数据集传递给SQL Server存储过程

时间:2010-07-02 06:15:44

标签: c# sql-server sql-server-2005

在这里,我遇到了一个问题,我想将数据集传递给SQL Server存储过程,我对它没有任何想法,也没有替代解决方案(我想是这样),让我告诉我想要的......

我有一个要读取的Excel文件,我成功读取它,并且所有数据都将这个excel工作簿导入数据集。现在这个数据需要插入到两个不同的表中,并且Excel工作簿中的行太多,所以如果我从代码后面运行它就不好了,这就是为什么我要将这个数据集传递给存储过程而不是...... ......

请给我一些解决方案。

1 个答案:

答案 0 :(得分:2)

不知道您正在使用的数据库版本,这里有一些提示:

  • 如果您需要定期阅读Excel文件,并将其拆分为两个或更多表,可能需要使用类似SQL Server Integration Services的内容。使用SSIS,您应该能够轻松实现这一目标

  • 您可以将Excel文件加载到临时临时表中,然后从存储过程中的该临时表中读取数据。这有效,但当有可能需要处理多个并发调用时,它会变得有点混乱

  • 如果您正在使用SQL Server 2008及更高版本,则应该查看table-valued parameters - 您基本上将Excel文件加载到.NET DataSet中,并将其作为特殊参数传递给存储过程。效果很好,但在2008版本之前的SQL Server中不可用

  • 由于您使用的是SQL Server 2005且表值参数不可用,您可能需要查看Erland Sommarskog的优秀文章Arrays and Lists in SQL SErver 2005 - 取决于您的数据集有多大,一个他的方法可能对你有用(例如,传递为你在存储过程中解析/粉碎的XML)