SQL Server为现有表添加默认日期时间列

时间:2019-04-05 07:46:22

标签: sql sql-server-2008-r2 crud

我希望表中有一个新列,该列将显示插入的日期和时间,但不修改查询以包括该列本身。

我通过以下方式添加了新列:

ALTER TABLE DBO.HOURLYMODULETIMES
ADD CreateTime datetime DEFAULT NOT NULL getdate()

这会将值添加到以前的条目中,但是当我尝试将表插入到表中而不包括新列时

INSERT INTO DBO.HOURLYMODULETIMES VAlUES
(99999999,11111,2222,'JA')

表有5列ID,AVGMODULETIME,SUMHOURS,USERNAME和CreateTime(新添加)。我收到以下错误:

 Column name or number of supplied values does not match table definition.

是否可以在不修改查询的情况下创建此类列?

1 个答案:

答案 0 :(得分:0)

要在执行INSERT时忽略其中的一列,必须立即指定这些列:

INSERT INTO DBO.HOURLYMODULETIMES (ID, AVGMODULETIME, SUMHOURS, USERNAME)
VALUES (99999999,11111,2222,'TEST')

始终执行此操作是一种好的编程习惯,因为表定义可能会随着时间而改变-正如您所注意到的!