Не могу вставить HOST_NAME по умолчанию - PullRequest
0 голосов
/ 29 марта 2019

Я создаю таблицу как:

CREATE TABLE [UserLoginAudit] (
UserLogginAuditId INT IDENTITY(1,1) PRIMARY KEY,
EmpGuid UNIQUEIDENTIFIER,
TimeLogged DATETIME,
WorkStation VARCHAR (255)  NOT NULL DEFAULT HOST_NAME()
)

Но когда я пытаюсь сделать вставку, например:

 INSERT INTO [UserLoginAudit]
               VALUES
                    (
                    @EmpGuid
                   , @Today
                    )

Возвращается:

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

Я проверяю на документы , и я правильно использую столбец WorksStation со значением по умолчанию, у меня нет идеи, почемуэто не позволяет мне вставить это значение по умолчанию.Есть идеи?

1 Ответ

3 голосов
/ 29 марта 2019

Без явного перечисления имен столбцов количество предоставленных вами значений не совпадает с определением таблицы.Вы можете либо перечислить только столбцы EmpGuid и TimeLogged во вставке, которые автоматически вставят значение по умолчанию для столбца WorkStation, либо использовать эти два столбца и добавить столбец WorkStation с ключевым словом DEFAULT виспользуйте значение по умолчанию.Я настоятельно рекомендую всегда перечислять все столбцы всякий раз, когда вы делаете INSERT (или любую другую операцию, например SELECT), чтобы избежать каких-либо проблем в будущем, если будут добавлены дополнительные столбцы.Это также значительно облегчит расшифровку вашего кода.

INSERT INTO [UserLoginAudit] (EmpGuid, TimeLogged)
 VALUES (@EmpGuid, @Today)

По умолчанию:

 INSERT INTO [UserLoginAudit] (EmpGuid, TimeLogged, WorkStation)
 VALUES (@EmpGuid, @Today, DEFAULT)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...