![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
![]()
Здраствуйте! У меня такая проблема - когда уже все таблицы были созданы, я поняла, что мне нужно назначить на одно из полей уже существующей таблицы тип автосчетчик (IDENTITY). Это поле уже имеет изначально необходимый тип int (integer). Везде в справочниках рассматриваются образцы, как создать такое поле при создании таблицы, но как назначить автосчетчик на существующую таблицу - нет.
У меня были варианты и SET DEFAULT и просто изменение типа. И не один вариант не работает - среда пишет:"Ошибка синтаксиса". Код:
Код:
Как можно поставить счетчик(не удаляя таблицу)?
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
добавить поле
заполнить поле [удалить поле]
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Колонка в таблицу добавляется командой
ALTER TABLE dbo.Teacher ADD ID_teacher INT IDENTITY NOT NULL насчет добавится ли IDENTITY поле не знаю, не пробовал никогда Если не добавится, то можно создать пустую новую таблицу с таким полем Insert-ом перегнать записи из старой в новую Удалить старую Переименовать новую Хлопотно, но что делать?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
![]()
Я тоже сейчас подумала про ADD - сейчас проверю
Он предлагает добавлять так колонку с таким же именем и ругается, что такая колонка уже существует. Просто добавление ADD IDENTITY (как мы поступаем в случае с ADD check) опять приводит к синтаксической ошибке. Да, я знаю, что можно просто стереть таблицу и наисать все заново красиво, просто я могу столкнутся с такой проблемой и в дальнейшем....И у меня три таких таблицы, требующих счетчки - их все тогда придется стирать?
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Последний раз редактировалось Blondy; 07.10.2011 в 18:09. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Так прпосто добавим без IDENTITY (если еще нет такого поля)
ALTER TABLE dbo.Teacher ADD ID_teacher INT NOT NULL и попробовать изменить, можеть получится ALTER TABLE dbo.Teacher ALTER COLUMN ID_teacher INT IDENTITY NOT NULL глянул на первые посты, это уже было ![]()
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
![]()
Дорогой Аватар, я последний предложенный Вами вариант уже проверяла. Не работает... А почему - казалось бы изменяем тип поля, пусть и назначая тотже интеджер и добавляя счетчик. А он уперся - ошибка синтаксиса и все тут
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
ALTER TABLE dbo.Teacher ADD ID_teacher INT IDENTITY
Такое добавление у меня нормально отработало. И пронумеровало строки. Только поля не должно быть с таким именем до этой команды. evg_m кстати и предложил во втором посте
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 07.10.2011 в 18:33. |
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
![]()
Это понятно, что не должно - ADD добавляет новую колонку.....
То есть тогда самый примитивный вариант - создать новое поле как надо, старое удалить. А как тогда поменять порядок полей в таблице - ведь добавление произойдет в "хвост", а мне в "голову" надо.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Пересозданием таблицы (пост 3)
![]()
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#10 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
![]()
Пересоздать таблицу никогда не поздно.
Давайте подождем Сергея (Serge_Bliznykov) или Виталика (Stilet), или может еще кто придет и предложит какой-нибудь научный метод решения проблемы. Или хотя бы объяснит - ну почему при создании таблицы int IDENTITY срабатывает, а при изменении типа на тот же int на предидущую фразу среда ругается.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создать отчет на основе существующей таблицы | RGZZ | Microsoft Office Excel | 2 | 28.07.2011 19:07 |
Разработчик|макрос. Добавление элементов к уже существующей таблице. | DarkGuard | Microsoft Office Excel | 0 | 24.03.2011 19:51 |
Доступ к БД (SQL server) в ОС Windows server 2003 | Mann | SQL, базы данных | 2 | 07.12.2008 19:15 |
меню в делфи с добавлением новой функции к уже существующей БД | Ane4ka | БД в Delphi | 22 | 27.05.2008 15:40 |
Открытие(подключение) уже существующей базы данных MS Access через ADO | Moel | БД в Delphi | 7 | 24.10.2007 16:57 |