我正在将Migrator.NET与DB2数据库一起使用,并且我当前的迁移执行ALTER TABLE
语句,这会导致表进入“reorg pending state”。此状态需要使用> REORG TABLE TableName
重新组织表,然后再对其执行任何其他操作。
我尝试用
执行此操作Database [“DB2”]。ExecuteNonQuery(“REORG TABLE MyTable”);
但它失败了,因为REORG
命令显然只是服务器端,无法从客户端调用。然后我尝试创建一个调用REORG语句但存在正确语法的存储过程。
有人可以建议解决这个问题吗?
答案 0 :(得分:5)
我找到了解决方案:
Database["DB2"].ExecuteNonQuery("call SYSPROC.ADMIN_CMD ('REORG TABLE MyTable')");
Link to ADMIN_CMD documentation
在DB2 9.7中,也可以使用此过程:ADMIN_REVALIDATE_DB_OBJECTS()