Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2011, 23:29   #1
Progsenya
Пользователь
 
Регистрация: 30.05.2010
Сообщений: 80
По умолчанию Insert

Код:
insert into [dbo].[Films]
values(1,'Дети капитана гранта',30,'01.01.2008','14.01.2008'),
(2,'пятнадцатилетний капитан',20,'07.01.2008','07.02.2008'),
(3,'Остров сокровищ',25,'01.02.2008','14.02.2008'),
(4,'Приключение капитана врунгеля',15,'01.02.2008','14.02.2008')
вот такая вот ошибочка

Цитата:
Msg 8101, Level 16, State 1, Line 2
An explicit value for the identity column in table 'dbo.Films' can only be specified when a column list is used and IDENTITY_INSERT is ON.
кто подскажет как исправить чтобы заработало?

Последний раз редактировалось Stilet; 19.02.2011 в 16:19.
Progsenya вне форума Ответить с цитированием
Старый 19.02.2011, 12:22   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Надеюсь я правильно понял, что в коде несколько Insert-ов?
Судя по ошибке у вас одно из полей аутоинкрементное, скорее всего первое. Если это так, то его значение не надо передавать в Values, оно сформируется автоматически
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.02.2011, 12:25   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

структуру таблицы Films не плохо бы увидеть...

1) не уверен, что MS SQL поддерживает множественный INSERT (много записей в одной команде).
Для начала попробуйте одну запись о фильме вставить.

2) похоже, что первое поле (ключевое) определено, как счётчик (автоинкрементное поле).
Поэтому нужно или
описать все поля:
Код:
insert into dbo.Films (ID, [NamrFilms], [date1], [date2]) 
  values ( 1,'Дети капитана гранта',30,'01.01.2008','14.01.2008')
либо выкиньте поле с ID из текста вставки:
Код:
insert into dbo.Films
  values ('Дети капитана гранта',30,'01.01.2008','14.01.2008')
p.s. а ещё у Вас могут быть проблемы с датами.. если в таблице поля типа DateTime или Date - то лучше даты передавать не в виде строк (неизвестно, как они их сконвертирует), а принудительно конвертировать в формат Date
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.02.2011, 12:33   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

MS SQL отлично понимает даты в формате '20110219' и '20110219 15:00:00' (ГГГГММДД)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.02.2011, 13:24   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Аватар
MS SQL отлично понимает даты в формате '20110219' и '20110219 15:00:00' (ГГГГММДД)
Угу.
но хочу заметить:
1) а автора топика даты подаются через точки и в формате ДД.ММ.ГГГГ
Скорее всего сервер нормально преобразует такие строчки, но, возможно, и не нормально..

2) я предпочитаю писать дату привычным образом и конвертировать эту дату принудительно, с указанием формата:
Код:
convert(Date, '14.01.2008', 104)
Каким способом пользоваться - каждый выбирает для себя...
Главное, знать про все варианты и риски выбранного способа

Аватар, я вижу, что Вы с MS SQL на короткой ноге...
Подскажите, а что в MS SQL сервере есть множественные Insert'ы (ну это когда в одной команде Insert можно ставить несколько записей - как это пытается сделать TC) ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.02.2011, 16:22   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Сержу:
http://msdn.microsoft.com/ru-ru/library/ms174335.aspx
Цитата:
Можно использовать конструктор строк Transact-SQL (также называемый конструктором табличных значений), позволяющий указать несколько строк в одной инструкции INSERT. Этот конструктор строк состоит из одного предложения VALUES со списками из нескольких значений, заключенными в круглые скобки и разделенными запятыми.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.02.2011, 17:22   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Можно использовать конструктор строк Transact-SQL (также называемый конструктором табличных значений), позволяющий указать несколько строк в одной инструкции INSERT. Этот конструктор строк состоит из одного предложения VALUES со списками из нескольких значений, заключенными в круглые скобки и разделенными запятыми.
К своему стыду первый раз об этом слышу,хотя уже лет 10 с MS SQL дружу
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.02.2011, 17:38   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

МСДН не спит )
Впрочем у меня не было нужды таким пользоваться, учитывая что я не помню зависит ли такая конструкция от версии или нет. Помоему это как стандарт идет...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.02.2011, 18:29   #9
Progsenya
Пользователь
 
Регистрация: 30.05.2010
Сообщений: 80
По умолчанию

спасибо большое ужа разобрался
Progsenya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Insert в Multimap Progsenya Общие вопросы C/C++ 1 14.09.2010 02:10
procedure Insert keen86nv Помощь студентам 2 01.04.2010 17:37
Insert into в InterBase Etlau Помощь студентам 3 27.12.2009 17:28
Insert - ? Evgenii БД в Delphi 2 06.07.2009 02:24
insert и update Tanusha SQL, базы данных 4 13.03.2009 14:47