Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как превратить столбец в автоинкрементный?  [new]
ValGer
Member

Откуда: Псков
Сообщений: 468
Хочу превратить столбец типа smallint в автоинкрементный, который до этого таковым не был. В MS SQL Server Studio это делается за пару щелчков мышки, а вот программно у меня ничего не выходит. Казадось бы всё просто:

use myDataBase
go

alter table myTab
alter column myTabColumn identity(1,1)
go

и ни хрена не выходит - идёт ошибка.
"myTabColumn" уже существующий столбец типа smallint в таблице myTab
Подскажите в чём проблема.
7 янв 13, 17:42    [13732137]     Ответить | Цитировать Сообщить модератору
 Re: Как превратить столбец в автоинкрементный?  [new]
Glory
Member

Откуда:
Сообщений: 104760
ValGer
Подскажите в чём проблема.

В том, что identity не добавляеится через alter column
7 янв 13, 17:52    [13732180]     Ответить | Цитировать Сообщить модератору
 Re: Как превратить столбец в автоинкрементный?  [new]
ValGer
Member

Откуда: Псков
Сообщений: 468
Glory
ValGer
Подскажите в чём проблема.

В том, что identity не добавляеится через alter column


То есть, это возможно только при добавлении нового столбца?
7 янв 13, 17:59    [13732207]     Ответить | Цитировать Сообщить модератору
 Re: Как превратить столбец в автоинкрементный?  [new]
Glory
Member

Откуда:
Сообщений: 104760
ValGer
То есть, это возможно только при добавлении нового столбца?

Да
7 янв 13, 18:03    [13732221]     Ответить | Цитировать Сообщить модератору
 Re: Как превратить столбец в автоинкрементный?  [new]
ValGer
Member

Откуда: Псков
Сообщений: 468
Glory
ValGer
То есть, это возможно только при добавлении нового столбца?

Да


Хреново!
Придётся ручками ползать по всей базе.
7 янв 13, 18:08    [13732238]     Ответить | Цитировать Сообщить модератору
 Re: Как превратить столбец в автоинкрементный?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31435
ValGer
Придётся ручками ползать по всей базе.
Можно удалить старый столбец и добавить новый.

Если обязательно сохранить старые значения, тогда только через переливку, как делает студия :-(
7 янв 13, 20:45    [13732901]     Ответить | Цитировать Сообщить модератору
 Re: Как превратить столбец в автоинкрементный?  [new]
Col
Member

Откуда: Торонто
Сообщений: 180
ValGer,

use myDataBase
go

alter table myTab
alter column myTabColumn int identity(50000, 1) NOT NULL PRIMARY KEY
go


50000 цифра относительная, она должна быть больше
select max (myTabColumn) from myTab
7 янв 13, 23:47    [13734217]     Ответить | Цитировать Сообщить модератору
 Re: Как превратить столбец в автоинкрементный?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31435
Col,

Сказали же, нельзя установить у колонки свойство identity, используя alter table alter column
8 янв 13, 00:08    [13734348]     Ответить | Цитировать Сообщить модератору
 Re: Как превратить столбец в автоинкрементный?  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3274
Col,

Такой синтаксис допустим только в Compact Edition. Обычные версии сиквела это не съедят.
8 янв 13, 09:15    [13735184]     Ответить | Цитировать Сообщить модератору
 Re: Как превратить столбец в автоинкрементный?  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Col
50000 цифра относительная
Это не цифра. Это пять цифр.
8 янв 13, 12:27    [13735472]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить