SQL Server Добавить столбец даты и времени по умолчанию для существующей таблицы - PullRequest
0 голосов
/ 05 апреля 2019

Я хочу иметь новый столбец в таблице, который будет показывать дату и время вставок, но без изменения запросов для включения самого столбца.

Я добавил новый столбец в следующемпуть:

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

Это добавляет значения к предыдущим записям, но когда я пытаюсь вставить INTOERT в таблицу, не включая новый столбец

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

Таблица имеет идентификатор 5 столбцов, AVGMODULETIME,SUMHOURS, USERNAME, CreateTime (недавно добавлено).Я получаю следующую ошибку:

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

Можно ли создать такой столбец без изменения запросов?

1 Ответ

0 голосов
/ 05 апреля 2019

Вы должны указывать столбцы сейчас, когда хотите пропустить один из них при выполнении INSERT:

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

Это всегда хорошая практика программирования, поскольку определения таблиц могут со временем меняться -как вы заметили!

...