sql server

SQL Serverに登録日時と更新日時を自動で設定する方法

  • POST
はじめに 本記事は、SQL Serverにおいて、INSERT時に登録日時を、UPDATE時に更新日時を自動で登録する方法を示す。 INSERT時に登録日時を自動登録 対象のテーブルに対して、以下のSQLを実行することで、レコードの登録日時の自動登録が可能になる。 ALTER TABLE [テーブル名].[プライマリーキー] ADD DEFAULT (GETDATE()) FOR [登録日時のカラム名] ADD DEFAULT はテーブルのカラムにデフォルト値を設定することができる。 GETDATE() はデータベースシステムのタイムスタンプを返しており、 ADD DEFAULT のデフォルト値に指定することで、レコードの登録日時を自動登録することができる。 UPDATE時に更新日時を自動登録 対象のテーブルに対して、以下のSQLを実行することで、レコードの更新日時の自動登録が可能になる。 CREATE TRIGGER [トリガー名] ON TABLE AFTER UPDATE AS BEGIN UPDATE TABLE SET [更新日時のカラム名] = GETDATE() WHERE [プライマリキー] IN (SELECT [プライマリーキー] FROM inserted) END CREATE TRIGGER でレコードがUPDATEされたときに更新日時を自動登録するトリガーを作成することができる。 SELECT [プライマリーキー] FROM insertedのinsertテーブルには、INSERT ステートメントおよび UPDATE ステートメントの実行で影響を受けた行のコピーが格納されている。 上記のSQLを実行し、トリガーを作成することで、insertテーブルにレコードが存在するレコードが存在する場合に、更新日時を自動登録することができる。