私は列を持つテーブルEmployee
を持っています:Id, Name, Address, City, Createddate
ここで、テーブルへのレコードの挿入時にこの列を追加する必要がcreateddate
ありますが、INSERT ステートメントを使用する必要はありません。
行がテーブルに追加されているときに日付情報を追加するデフォルトのオプションはありますか?
この点について私に提案してください。
私は列を持つテーブルEmployee
を持っています:Id, Name, Address, City, Createddate
ここで、テーブルへのレコードの挿入時にこの列を追加する必要がcreateddate
ありますが、INSERT ステートメントを使用する必要はありません。
行がテーブルに追加されているときに日付情報を追加するデフォルトのオプションはありますか?
この点について私に提案してください。
フィールドのデフォルト値をGetdate()
間違っていなければ、テーブルを作成するときに、ID (主キー) や日付スタンプなどの値を自動的に配置することができます。以下の例を参照してください。
CREATE TABLE [dbo].[table] (
tableID [int] IDENTITY(1,1) NOT NULL
, DatumCreate [datetime] DEFAULT GetDate() NOT NULL,
, other values ....
, CONSTRAINT pk_FactuurID PRIMARY KEY (FactuurID)
)
GO
はい、他の人が提案したようにデフォルト値を(でGetDate()
)使用するか、より柔軟性が必要な場合(列を更新するなど)、トリガーを使用して挿入された値を検査し、列の値を直接設定できます。
このような:
CREATE TRIGGER my_trigger
ON my_table
AFTER INSERT, UPDATE, DELETE
AS
BEGIN
if exists(select * from inserted)
-- we're covering just insert cases here..
begin
insert into my_table(col1, col2, col3, ..., col_timestamp)
select inserted.col1, inserted.col2...., CURRENT_TIMESTAMP from inserted
end
END
GO
INSERT を使用する必要はありませんが、CREATE を使用する必要がある場合があります。