SQL Serverに登録日時と更新日時を自動で設定する方法
- POST
はじめに 本記事は、SQL Serverにおいて、INSERT時に登録日時を、UPDATE時に更新日時を自動で登録する方法を紹介します。
INSERT時に登録日時を自動登録 対象のテーブルに対して、以下のSQLを実行することで、レコードの登録日時の自動登録が可能になります。
ALTER TABLE [テーブル名] ADD DEFAULT (GETDATE()) FOR [登録日時のカラム名] ADD DEFAULT はテーブルのカラムにデフォルト値を設定することができます。
GETDATE() はデータベースシステムのタイムスタンプを返しており、ADD DEFAULT のデフォルト値に指定することで、レコードの登録日時を自動登録することができます。
UPDATE時に更新日時を自動登録 対象のテーブルに対して、以下のSQLを実行することで、レコードの更新日時の自動登録が可能になります。
CREATE OR ALTER TRIGGER [トリガー名] ON [テーブル名] AFTER UPDATE AS BEGIN UPDATE [テーブル名] SET [更新日時のカラム名] = GETDATE() WHERE [プライマリキー] IN (SELECT [プライマリーキー] FROM inserted) END CREATE TRIGGER でレコードがUPDATEされたときに更新日時を自動登録するトリガーを作成することができます。
SELECT [プライマリーキー] FROM inserted の箇所についてですが、 insertedテーブルには、INSERT ステートメントおよび UPDATE ステートメントの実行で影響を受けた行のコピーが格納されています。
上記のSQLを実行すると、inserted テーブル内に存在するレコードを更新する際に、更新日時を自動登録するトリガーが作成されます。
おわりに 本記事は、SQL Serverにおいて、INSERT時に登録日時を、UPDATE時に更新日時を自動で登録する方法を紹介しました。
本記事が、SQL Serverを利用しているエンジニアの参考になれば、幸いです。
本サイトへのご意見、お問い合わせなどありましたらこちらからご連絡下さい。 お問合せフォーム
a8adscript('body').