AccessのDELETE文で迷った

Access2019がローカルで持っていたテーブルを外部データベースに移行して、そのテーブルを参照していたクエリをパススルークエリに修正する、という作業をしてました。

そこで無駄に悩んでしまったのが、
元々使用されていたAccessのDeleteクエリに列指定があったこと。

新しいクエリではUpdateにして、列指定の箇所をNullで更新すればいいのか…?と悩んだけれども、結論として列指定無視してDeleteすればよかった。

Acccessではクエリを作成する際に、
クエリデザインなるデザイナでテーブルを一覧から選択、そのテーブルから編集したい項目を選択…という手順でユーザが操作し、SQL自体はその操作時に自動作成される。その際、AccessはDelete文を作成したときにも列を指定するようなSQL文を作ってしまう。
ただ、実際はDeleteはWhere句で指定された行全体に対して行われるので、これは無視してOKとのこと。


https://docs.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/delete-statement-microsoft-access-sql?redirectedfrom=MSDN

またAccessのことがちょっとだけ嫌いになりました。

この記事が気に入ったらサポートをしてみませんか?