AAr*_*out 2 trigger sql-server t-sql timestamp row-modification-time
好的,所以我试图在最初插入记录时将特定记录中的列更新为 CURRENT_TIMESTAMP。这就是我所拥有的,否则我就迷路了。
CREATE TRIGGER dbo.TrgUpnInsert
ON [CNLH Security Authentication].dbo.DateTimestamp
AFTER INSERT,
INSERT INTO [CNLH Security Authentication].dbo.EntranceInformation (DateTimestamp) Values (CURRENT_TIMESTAMP);
Run Code Online (Sandbox Code Playgroud)
您的触发器需要利用“虚拟插入”表,如下例所示:
CREATE TRIGGER ModDate
ON TableX
AFTER INSERT
AS
BEGIN
UPDATE X
SET ModifiedDate = CURRENT_TIMESTAMP
FROM TableX X
JOIN inserted i ON X.key = i.key -- change to whatever key identifies
-- the tuples
END
Run Code Online (Sandbox Code Playgroud)
作为触发器的替代方案,为什么不简单地为该列分配一个默认值。例子:
ALTER TABLE myTable
ADD CONSTRAINT CONSTRAINT_NAME
DEFAULT CURRENT_TIMESTAMP FOR myColumn
Run Code Online (Sandbox Code Playgroud)
例子:
IF OBJECT_ID('tempdb..#temp') IS NOT NULL
DROP TABLE #temp
CREATE TABLE #temp (
col1 VARCHAR(10)
,col2 DATETIME
)
ALTER TABLE #temp ADD CONSTRAINT ConstraintForTemp DEFAULT CURRENT_TIMESTAMP
FOR col2
INSERT INTO #temp (col1)
VALUES ('abc')
SELECT *
FROM #temp
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4878 次 |
最近记录: |