Дана база данных SQL Server Express Compact Edition с таблицей «Клиенты» со следующими столбцами:
ID, FirstName, MiddleName, Nickname, LastName, Suffix, IsMale
где ID — это автоматически увеличивающийся первичный ключ/идентификационное значение, когда я пытаюсь использовать эту команду в таблице:
INSERT INTO Clients (Title, FirstName, MiddleName, Nickname, LastName, Suffix,
IsMale) VALUES ('', 'John', '', '', 'Smith', '', 'True')
все работает. Но когда я пытаюсь использовать эту команду:
INSERT INTO Clients VALUES ('', 'John', '', '', 'Smith', '', 'True')
появляется эта ошибка:
The number of columns in the query and the table must match. [ Number of columns
in query = 7, Number of columns in table = 8 ]
Я уже давно использую операторы вставки с SQL Server, и это никогда не было проблемой; проверка по количеству столбцов всегда игнорировала автоинкрементные первичные ключи/типы удостоверений. Единственная существенная разница в этом случае заключается в том, что сейчас я использую очень дешевую версию SQL Server, тогда как я привык использовать гораздо более профессиональные версии. В случае, если это может иметь значение, я использую это в программе на С#.
Что может быть причиной этого? Спасибо.
РЕДАКТИРОВАТЬ. В этом вопросе основное внимание уделяется тому факту, что я никогда не сталкивался с этой проблемой при использовании несвободных, некомпактных версий SQL Server. SQL-серверы, которые я использовал раньше, ВСЕГДА были достаточно умны, чтобы игнорировать столбец идентификатора/первичного ключа в подсчете столбцов и просто вычислять автоматически увеличивающееся значение без необходимости указывать конкретные имена столбцов.
Хотя еще одно отличие здесь заключается в том, что я всегда использовал SQL Management Studio для работы с определениями таблиц раньше, тогда как в этом случае я использую VS 2012 и SQL Server Compact Edition. Задействованные пользовательские интерфейсы, очевидно, довольно разные, поэтому я думаю, может быть, что-то указано для таблицы или что-то еще, когда вы делаете это в Management Studio, что предотвращает возникновение этой проблемы?
SELECT
, так и вINSERT
заявление - person marc_s   schedule 11.01.2013