通过复制到另一个来创建数据库表

时间:2018-01-31 10:15:52

标签: sap abap sap-data-dictionary

我想通过abap程序而不是通过SE11创建备份副本ztable。反正有吗?

e.g。我想将zmydbtable复制到zmydbtable_bckp,我该怎么做呢?

谢谢

1 个答案:

答案 0 :(得分:2)

正如您所说的SE11,我假设您要复制定义/结构,而不是内容。要存档,您可以执行以下操作:

  1. 定义新的TADIR条目并使用功能模块'TR_TADIR_INTERFACE'

    写入
    CALL FUNCTION 'TR_TADIR_INTERFACE'
      EXPORTING
        wi_test_modus        = space
        wi_tadir_pgmid       = 'R3TR'
        wi_tadir_object      = 'TABL'
        wi_tadir_obj_name    = 'ZMYDBTABLE_BCKP'
        wi_tadir_author      = sy-uname
        wi_tadir_devclass    = 'YOUR_PACKAGE'.
    
  2. 使用功能模块'DDUT_OBJECT_COPY'复制旧表def。到新的

    CALL FUNCTION 'DDUT_OBJECT_COPY'
      EXPORTING
        type                 = 'TABL'
        src_name             = 'ZMYDBTABLE'
        dst_name             = 'ZMYDBTABLE_BCKP'.
    
  3. 调用功能模块'DD_TABL_ACT'以激活表

    CALL FUNCTION 'DD_TABL_ACT'
       EXPORTING
         tabname             = 'ZMYDBTABLE_BCKP'.
    
  4. 我只在示例中显示了您需要的基本参数;请根据需要添加其他内容并进行适当的异常处理。

    就个人而言,我会劝阻你这样做,因为这触及了系统的核心,它很容易弄得一团糟。任何错误的使用都可能导致系统出现严重问题。请注意,所提供的功能模块不会由SAP发布供客户使用,因此如果您破坏了任何内容,您将无法获得任何支持。