当前位置:  开发笔记 > 编程语言 > 正文

如何将数组/数据表之类的变量传递给SQL服务器?

如何解决《如何将数组/数据表之类的变量传递给SQL服务器?》经验,为你挑选了1个好方法。

有时您需要使用数据表中的许多行来升级数据库,或者您拥有一个充满数据的数组,而不是将所有这些数据放在一个字符串中然后在SQL SERVER中拆分,或者不是在数据库中迭代数据表.逐行代码和更新数据库,还有其他方法吗?除了SQL SERVER 2005中的传统变量之外,还有其他类型的变量吗?



1> Marc Gravell..:

我同意John的观点,SqlBulkCopy或者sqlxml是SQL Server 2005中的最佳选择; 请注意,在SQL Server 2008中,您还有表值参数,值得考虑; 特别是当与新的合并连接混合使用时.

请注意,如果您使用SqlBulkCopy,我强烈建议仅批量插入临时表 - 即仅用于导入的单独表; 然后运行存储过程将数据移动到实时表.这样您就可以获得正确的日志记录,并且在运行SP时,您可以在数据库中拥有一个严格范围的事务(即,您不需要跨越所有网络IO的事务).

另一点; 如果你正在处理大量数据,你可能不想加载一个DataTable(因为这会迫使你先缓冲内存中的所有数据); 作为替代方案,也可以编写自己的IDataReader数据从流中提取数据(例如文件等); 看到SimpleDataReader 这里.SqlBulkCopyIDataReader非常愉快地接受数据.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有