通过odbc从SQL Server中删除db2中的记录

问题描述:

我有一个从SQL Server到db2系统的ODBC连接。我可以使用OPENQUERY从我预定的表中选择,插入和删除记录。通过odbc从SQL Server中删除db2中的记录

但是,我需要经常从表中删除所有记录,并试图删除整个内容时,我得到有关隔离级别的错误,但我认为它实际上与我的行数有关试图一次删除。

我可以一次循环并删除约600个,但这是现在的黑客攻击。

关于如何更有效地做到这一点的任何建议?

错误我越来越:

OLE DB提供程序“MSDASQL”链接服务器“MY_SERVER”返回了消息“无论隔离级别也不是支持加强它。”

消息7392,级别16,状态2,行32
无法启动OLE DB提供程序 “MSDASQL” 链接服务器 “MY_SERVER” 的交易。

+0

您可以使用OpenRowSet来替代。但请确保您有权执行删除操作。 –

如果你真的要删除的DB2表中的所有记录,为什么不试试:

TRUNCATE TABLE <mytable> 

我想你可以通过在OLE DB EXEC运行它使用(这不是ODBC)这样的事情:

EXEC <mylinkedserver.db>sp_executesql 'TRUNCATE TABLE <mytable>' 
+0

我尝试过,但我没有它的特权。此外,至少在sql server中,如果有任何带有FK的表到表中,truncate将不起作用。这不是这种情况,但这是truncate并不总是可用解决方案的常见原因。 –