2

s_phoneこのテーブルには列があるテーブルがありますs_update

このテーブルを更新または挿入するたびに現在の日時を取得したい

getdate()またはsystime()CURRENT_TIMESTAMP更新時ではなく挿入時のみの日時を取得します

4

3 に答える 3

3

TRIGGERを使用できます テーブルで挿入/更新が発生すると、トリガーが自動的に実行されます。

例えば:

create table tbl1
(
    col1 int primary key,
    col2 datetime
)
go
create trigger trg01
on tbl1
for insert, update
as 
begin
   update tbl1 
   set col2 = GETDATE()
   where col1 in (select col1 from inserted)
end   
go
insert into tbl1(col1) values (1);
于 2013-03-11T06:38:55.877 に答える
1

あなたの質問は紛らわしいです。最初に「 ..このテーブルに更新または挿入するたびに現在の日付時刻を取得したい..」と言い、質問の最後の部分で、「..日付時刻を取得する」と言いました更新時ではなく挿入時のみ.."

ただし、これを試してみてください。列にデフォルト値を設定してみませんか。例:

CREATE TABLE Hello
(
    ID INT,
    DATE DATETIME DEFAULT GETDATE()
)


INSERT INTO Hello (ID) VALUES (1)
INSERT INTO Hello (ID) VALUES (2)
INSERT INTO Hello (ID) VALUES (3)
INSERT INTO Hello (ID) VALUES (4)
于 2013-03-11T06:35:51.533 に答える
0
getdate() or systime() or CURRENT_TIMESTAMP 

これらは、現在のシステム日付時刻を示します。挿入が必要な場合は、イベントキャプチャを更新してトリガーを使用するか、自分で日時を取得して必要なテーブルに挿入できます。

于 2013-03-11T06:42:32.270 に答える