通过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” 的交易。
答
如果你真的要删除的DB2表中的所有记录,为什么不试试:
TRUNCATE TABLE <mytable>
我想你可以通过在OLE DB EXEC运行它使用(这不是ODBC)这样的事情:
EXEC <mylinkedserver.db>sp_executesql 'TRUNCATE TABLE <mytable>'
+0
我尝试过,但我没有它的特权。此外,至少在sql server中,如果有任何带有FK的表到表中,truncate将不起作用。这不是这种情况,但这是truncate并不总是可用解决方案的常见原因。 –
您可以使用OpenRowSet来替代。但请确保您有权执行删除操作。 –