来自客户端的DB2 REORG TABLE和Migrator.NET

时间:2010-10-20 14:40:20

标签: c# db2 alter-table migratordotnet

我正在将Migrator.NET与DB2数据库一起使用,并且我当前的迁移执行ALTER TABLE语句,这会导致表进入“reorg pending state”。此状态需要使用> REORG TABLE TableName重新组织表,然后再对其执行任何其他操作。

我尝试用

执行此操作
  

Database [“DB2”]。ExecuteNonQuery(“REORG TABLE MyTable”);

但它失败了,因为REORG命令显然只是服务器端,无法从客户端调用。然后我尝试创建一个调用REORG语句但存在正确语法的存储过程。

有人可以建议解决这个问题吗?

1 个答案:

答案 0 :(得分:5)

我找到了解决方案:

Database["DB2"].ExecuteNonQuery("call SYSPROC.ADMIN_CMD ('REORG TABLE MyTable')");

Link to ADMIN_CMD documentation

在DB2 9.7中,也可以使用此过程:ADMIN_REVALIDATE_DB_OBJECTS()