SQL プロシジャ
DELETE ステートメント
FROM句で指定したテーブルまたはビューから、1つ以上の行を削除します。
| 制限事項: | DELETE FROMは、UPDATE処理をサポートしないエンジンによってアクセスされたテーブルには使用できません。 |
|---|---|
| 参照項目: | 2つのテーブルを組み合わせる |
構文
必須引数
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日