SQL プロシジャ

DELETE ステートメント

FROM句で指定したテーブルまたはビューから、1つ以上の行を削除します。

制限事項:DELETE FROMは、UPDATE処理をサポートしないエンジンによってアクセスされたテーブルには使用できません。
参照項目:2つのテーブルを組み合わせる

構文

DELETE FROM table-name | sas/access-view | proc-sql-view
<AS alias>
<WHERE sql-expression>;

必須引数

table-name

行を削除するテーブルを指定します。table-nameとしては、1レベルの名前、2レベルのlibref.tableの名前または単一引用符で囲まれた物理パス名が可能です。

注意

再帰的なテーブル参照は、データの整合性の問題を引き起こす恐れがあります。 DELETEステートメントの対象テーブルを再帰的に参照することは可能ですが、それを行うと、データの一貫性の問題や、不正な結果を招く恐れがあります。次のような構造は避けてください。

proc sql;
   delete from a
      where var1 > (select min(var2) from a);
quit;

sas/access-view

行を削除するSAS/ACCESSビューを指定します。

proc-sql-view

行を削除するPROC SQLビューを指定します。proc-sql-viewとしては、1レベルの名前、2レベルのlibref.viewの名前または単一引用符で囲まれた物理パス名が可能です。

オプション引数

AS alias

table-name、sas/access-viewまたはproc-sql-viewに別名を割り当てます。

WHERE sql-expression

一連のオペランドと演算子から値を生成します。

詳細

ビューを介した行の削除

ビューの基になるテーブルから1つ以上の行を削除できますが、いくつかの制限があります。PROC SQLビューとSAS/ACCESSビューの更新を参照してください。

注意

WHERE句を省略した場合、DELETEステートメントは、指定したテーブルまたはビューによって記述されたテーブルのすべての行を削除します。行は、テーブルを再作成するまでテーブルから実際には削除されません。

最終更新: 2026年4月14日