2017-06-15 68 views
0

我有一個從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來替代。但請確保您有權執行刪除操作。 –

回答

0

如果你真的要刪除的DB2表中的所有記錄,爲什麼不試試:

TRUNCATE TABLE <mytable> 

我想你可以通過在OLE DB EXEC運行它使用(這不是ODBC)這樣的事情:

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

我嘗試過,但我沒有它的特權。此外,至少在sql server中,如果有任何帶有FK的表到表中,truncate將不起作用。這不是這種情況,但這是truncate並不總是可用解決方案的常見原因。 –

相關問題