Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Alter neke kolone da bude Is Identity

[es] :: MS SQL :: Alter neke kolone da bude Is Identity

[ Pregleda: 1743 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

CallMeSaMaster

Član broj: 43611
Poruke: 466
*.hermes-softlab.com.



+1 Profil

icon Alter neke kolone da bude Is Identity14.01.2010. u 15:14 - pre 172 meseci
Pozdrav,

imam jednu tabelu koja sadrzi neke podatke , izmedju ostalog polje "ID" ali koje nije setovano kao Identity i autoincrement. Neko ko je dizajnirao bazu napravio je tu gresku da u toj tabeli ima ID ali da to polje nije autoincrement jer je on iz applikacije generisao ID i pisao u bazu, sto po meni nema neke logike.

Sada bih ja htio da to promijenim i da se SQL server brine o dodijeljivanju ID u tabeli. Problem mi predstavlja sto trebam sve podatke zadrzati, ukljucujuci i ID-eve koji su u toj tabeli ,ali postaviti da u buduce to polje bude identity i autoincrement 1 od zadnjeg postojeceg ID-a.. Naravno trebam scriptu za to jer ne zelim to direktno rucno na tabeli da klikam i na taj nacin da setujem.

Lagano sam dobio zadnji ID u tabeli, funkcijom MAX. Ali ne znam kako da sada alter tu tabelu odnosno to polje i da baza nastavi normalno da radi.

Moze li mi neko pomoci kako to da uradim?

Ako se malo razumijem u baze, a mislim da se razumijem, trebao bih napraviti novu temptabelu, setovat polje sa identity koje zelim, rename tabele u stari naziv, a staru tabelu obrisat. Problem mi je naravno sto dosadasnje id moram zadrzati, znaci ne smijem ih obrisati.

Nadam se da sam uspio objasniti...
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
..135.224-dsl.net.metronet.hr.



+19 Profil

icon Re: Alter neke kolone da bude Is Identity14.01.2010. u 18:20 - pre 172 meseci
kod kreiranja identity (autoincrement) imaš mogućnost od kojeg broja da počne i skojim pomakom.

identity(100,1)

počinje od 100 sa korakom 1.

http://technet.microsoft.com/en-us/library/ms174123.aspx

odma na početku

Code:
ALTER TABLE table_name
    ALTER COLUMN column_name 
   {
    type_name[({precision[.scale]})][NULL|NOT NULL]
   {DROP DEFAULT 
   | SET DEFAULT constant_expression 
   | IDENTITY [ ( seed , increment ) 
   } 


ALTER TABLE MyCustomers ALTER COLUMN CustId IDENTITY (100, 1);
 
Odgovor na temu

[es] :: MS SQL :: Alter neke kolone da bude Is Identity

[ Pregleda: 1743 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.