有时,您需要升级数据库,其中数据表中有许多行,或者您有一个充满数据的数组,而不是将所有这些数据放在一个字符串中,然后在 SQL SERVER 中拆分,或者不是在 SQL SERVER 中迭代数据表。逐行代码并更新数据库,还有其他方法吗? SQL SERVER 2005中除了传统变量之外还有其他类型的变量吗?
我同意约翰的观点SqlBulkCopy
或 sqlxml 是 SQL Server 2005 中的最佳选择;请注意,在 SQL Server 2008 中,您还可以表值参数 http://msdn.microsoft.com/en-us/library/bb675163.aspx,这值得考虑;尤其是与新产品混合时合并连接 http://msdn.microsoft.com/en-us/library/ms141775.aspx.
请注意,如果您使用SqlBulkCopy
,我强烈建议仅批量插入到临时表中 - 即仅用于导入的单独表;然后运行存储过程将数据移动到实时表。这样您就可以获得正确的日志记录,并且在运行 SP 时可以在数据库中进行范围严格的事务(即您不需要跨越所有网络 IO 的事务)。
还有一点;如果您正在处理大量数据,您可能不想加载DataTable
(因为这迫使您首先缓冲内存中的所有数据);作为替代方案,也可以编写自己的IDataReader
从流(例如文件等)中提取数据;看SimpleDataReader
here http://groups.google.com/group/microsoft.public.dotnet.languages.csharp/browse_thread/thread/84d08dd9778efd77/91c7a20056ffe8e1. SqlBulkCopy
将接受来自一个的数据IDataReader
非常高兴。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)