Проблема не в данных, а в именах столбцов и выражении SQL.
В SQL Server существуют определенные зарезервированные работы системы, которые мы называем Ключевые слова . Обычно мы не поддерживаем использование этих ключевых слов в качестве имен столбцов, так как это может повлиять на производительность запроса. Имена столбцов
Имя, пользователь и дата
являются ключевыми словами или типами данных в SQL Server, поэтому при компиляции операторов это может привести к путанице с компилятором. Таким образом, вы можете решить эту проблему с помощью любого из двух следующих подходов:
Подход № 1
Изменить имена столбцов, которые имеют то же имя, что и ключевые слова. Вы можете легко определить этот столбец, введя Имя COlumn в SQL Server Management Studio, и если цвет текста изменится на Синий, Розовый или Серый (настройки цвета по умолчанию в SSMS), это некоторые системные ключевые слова
- Синий: типы данных
- Розовый: системные функции
- Серый: Ключевые слова
Обратите внимание:
Поскольку изменение имени столбца также вызовет проблемы с другими приложениями, и вам придется изменить его во всех этих областях, этот подход менее предпочтителен, если у вас уже есть стабильная система. Но если вы находитесь на начальной стадии развития, это будет лучшим способом решения будущих проблем.
Подход № 2
Это самая простая идея, во всех местах, где вы используете любое из системных зарезервированных ключевых слов, перечисленных выше, поместите их в квадратные скобки, и эта проблема будет решена. Это самый быстрый способ исправить вашу проблему
Ваш обновленный код должен выглядеть следующим образом:
DECLARE @USER VARCHAR(40)
SET @USER = SYSTEM_USER
INSERT INTO MyTable (Id, [Name], [User], [Date])
VALUES (1, 'Cris', @USER, GETDATE()),
(2, 'Joel', @USER, GETDATE()),
(3, 'Kris', @USER, GETDATE());