ABAP SQL 中的 Modify 使用

leniz發表於2009-01-07

      記得先前寫新增修改記錄時,採用先Update,然後判斷Sy-subrc是否為零,為零則Update成功,否則再用一句Insert的語句把新增的記錄插入表。

      這個寫法被人家笑死了。 “不會用Modify 嗎?”

       新語言新特性!所以,不管以前做過什麼,遇到新的東西,也有必要好好去看文件。

      那麼這麼好用的Modify是如何用的呢?

     其實很簡單,Modify會根據你提供的Workarea中的欄位對應Table的欄位,通過匹配Primary Key 值來操作,記住這個Primary Key是Table的而不是Workarea或內表中的非數值欄位。
        MODIFY dbtab - source 
        Syntax
          
... FROM { {wa} | {TABLE itab} }.

    這條語句會先判斷是否存在相同的Primary Key值,有的話會採用Update,這裡要注意一下,wa或內表和DB Table的結構是一樣的,如果你只是更新其中的某個欄位,請不要使用這個語句,否則它會wa中的空值欄位更新到資料庫中,要不你必須把所有的欄位先按照原來的值填充進來。
       如果沒有相同的Primary Key則會產生一條Insert的語句.

       總結如下:
       1. 適合整條記錄更新或新增
        2. 無法按照非Primary Key值作為條件去更新某條記錄

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/554557/viewspace-531620/,如需轉載,請註明出處,否則將追究法律責任。

相關文章