私は SqlServer 2005 を使用しています。日付を更新するプロパティ (デフォルト値のようなものですが、挿入だけでなく、任意の変更) を設定したいと考えています。つまり、すべての更新と挿入で、現在の日付が列に配置されます。これはどのように達成されますか?
質問する
58 次
2 に答える
1
A
テーブルがあるとしましょう:
CREATE TABLE A (
ID INT,
Name VARCHAR(20),
SomeDate DATE NULL)
トリガーを作成できます。
CREATE TRIGGER INSTEAD_OF_A_INSERT
ON A
INSTEAD OF INSERT AS
BEGIN
INSERT INTO A (ID, Name, SomeDate)
SELECT ID, Name, GETDATE ()
FROM inserted
END
GO
CREATE TRIGGER INSTEAD_OF_A_UPDATE
ON A
INSTEAD OF UPDATE AS
BEGIN
UPDATE A
SET SomeDate = GETDATE(),
Name = I.Name
FROM A A1 JOIN INSERTED I ON A1.ID = I.ID
END
GO
あなたが望むものを与えるもの
INSERT INTO A (ID, Name)
VALUES(1, 'John');
INSERT INTO A (ID, Name)
VALUES(2, 'Jack');
UPDATE A
SET Name = 'Jane'
SELECT *
FROM A
これはあなたが遊ぶことができるフィドルです。
于 2012-11-15T15:55:16.190 に答える
0
これを行う最も簡単な (ただし、必ずしも最も効率的であるとは限りません) 方法は、トリガーを使用することです。
MSDNを参照してください。
AFTER INSERT,UPDATE
正確な要件に応じて、または- のいずれかを使用INSTEAD OF INSERT,UPDATE
してジョブを実行できます。
于 2012-11-15T15:48:19.827 に答える