2015-07-21 4 views
0

У меня ошибка недопустимого имени столбца при вставке записи в таблицу SQL Server. Вот определение:Ошибка имени столбца SQL Server

CREATE TABLE [dbo].[myTable] 
(
    [id] int IDENTITY(1, 1) NOT NULL, 
    [person_name] varchar(255) NOT NULL, 
    [modified_By] varchar(255) NOT NULL 
) 
ON [PRIMARY] WITH (DATA_COMPRESSION = NONE); 
GO 

И вставить

INSERT INTO myDB.dbo.myTable (id, person_name, modified_By) 
VALUES (1, 'Aishwarya', 'admin') 

Но я получаю следующее сообщение об ошибке при выполнении:

Lookup Error - SQL Server Database Error: Invalid column name 'modified_BY'.

Я могу SELECT от штрафа колонны. Единственное, что я заметил по ошибке, это то, что «BY» капитализируется, вопреки определению таблицы. Есть идеи?

UPDATE: Обновление всех синтаксических ошибок, apologeez

+0

отсутствует ']' после 'person_name' и после' modified_by' –

+0

извините, обновит –

+0

пропавших без вести), который должен закрыть таблицу create –

ответ

0

В вашем заявлении INSERT не поставить значение для IDENTITY столбца «Id». Он должен выглядеть так:

INSERT INTO myDB.dbo.myTable 
(person_name, modified_By) 
VALUES ('Aishwarya', 'admin') 
+1

Разумеется, но это не должно отражать сообщение об ошибке, которое утверждает OP. – jpw

+0

Вы правы. Но я предполагаю, что это будет следующая ошибка, с которой он/она столкнутся :) – JohnS

1

Является ли ваша база данных настроенной на чувствительную к регистру сортировку? Вы можете проверить, выполнив запрос:

SELECT DATABASEPROPERTYEX('<Insert Database Name>', 'Collation') SQLCollation; 

Нерегистрозависимые сортировки обычно имеют CI в названии, например SQL_Latin1_General_CP1_CI_AS.

Где в качестве чувствительного к регистру сортировки может быть что-то вроде Latin1_General_BIN.

Если в базе данных имеется сортировка по регистру, то заглавная буква в T-SQL должна соответствовать определению столбца.

Ваше сообщение здесь не включает в себя заглавные буквы в инструкции insert, поэтому дважды проверьте это. Если он правильно заглавны, проверьте, есть ли в таблице триггеры, которые могут иметь неправильное правописание.

+0

Mine DB Returns Latin1_General_CI_AS - пока этого не искали, но я предполагаю, что это нечувствительно к регистру? –

+0

Это также определено в моем столбце «modified_By'». –

+0

Тот факт, что сообщение об ошибке имеет другую заглавную букву, является подозрительным. У вас есть триггеры на столе? –

0

Не ответ, который кто-то хочет услышать, но наш администратор базы данных сбросил и воссоздал таблицу (на которой были установлены триггеры), и это решило проблему.

Смежные вопросы