【发布时间】:2018-11-25 06:57:40
【问题描述】:
我有一个名为Customer 的表,而有问题的列是dbupddate。此列应包含导致插入记录的查询的日期时间。
我已经对getdate()做了一个默认约束:
CREATE TABLE [dbo].[customer]
(
[dbupddate] [DATETIME] NOT NULL
CONSTRAINT [DF_customer_dbupddate] DEFAULT (GETDATE()),...
但这并不能防止有人意外输入不相关的值。
如何确保dbupddate 列有插入日期时间?
我猜答案将包含一个触发器。在这种情况下,请考虑以下已经存在的触发器,它的效果不应以任何方式丢失/修改:
CREATE TRIGGER [dbo].[customer_ins_trig]
ON [dbo].[customer]
AFTER INSERT
AS
BEGIN
DELETE u
FROM transfer_customer_unprocessed u
WHERE EXISTS (SELECT 1 FROM inserted i WHERE i.code = u.code)
INSERT INTO transfer_customer_unprocessed (code, dbupddate)
SELECT code, dbupddate
FROM inserted
END
也许我可以在其中添加一些行以满足我的需要?或者创建另一个?
【问题讨论】:
标签: sql sql-server tsql datetime triggers