cnZach寫道,你必須從你得到的信息生成一個查詢。您可以通過查詢目錄來實現,然後創建一組語句。
按照你說的話,禁用特定表中的記錄的語句是
alter table table-name not logged initially;
但是你要取回所有的表,或一組從數據庫表。這可以通過查詢目錄
db2 "select substr(tabschame) || '.' || substr(tabname) \
from syscat.table where type = 'T' and tabschema not like 'SYS%'"
一旦你已經修改了之前的查詢您的要求(獲取你所需要的表),那麼你修改查詢生成ALTER語句爲所有表進行
db2 "select 'alter table ' || substr(tabschame) || '.' \
|| substr(tabname) || ' not logger initially' \
from syscat.table where type = 'T' and tabschema not like 'SYS%'"
如果您願意,您可以直接執行db2輸出,或者只是將它發送到一個文件並稍後通過「db2 -tvf filename.sql」執行它。另一個選項有一個回調,因爲存在問題輸出大小;如果大於某個限制,則不能執行(| db2 + p -tv)
db2 "select 'alter table ' || substr(tabschame) || '.' \
|| substr(tabname) || ' not logger initially' \
from syscat.table where type = 'T' and tabschema not like 'SYS%'" | db2 +p -tv
你想要什麼是不可能的。考慮使用DB2 LOAD來填充表 - 這將最大限度地減少日誌記錄。 – mustaccio