2

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

我试着用

数据库["DB2"].ExecuteNonQuery("REORG TABLE MyTable");

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

任何人都可以提出解决这个问题的方法吗?

4

1 回答 1

5

我找到了一个解决方案:

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

链接到 ADMIN_CMD 文档

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

于 2010-10-20T15:12:19.687 回答