MsSql - IDENTITY wlasciwosc kolumny
g3 - 13-11-2006 00:45
MsSql - IDENTITY wlasciwosc kolumny
Witam,
Czy ktos wie, jak z poziomu t-sql (nie Mangement Studio) usunac wlasciwosc IDENTITY (autoikrementacja) kolumny?
Czyli jak zrobic cos takiego:
alter table <tabela> alter column <kolumna> <typ> NOIDENTITY ;-)
Pozdrawiam
Tomek
-- http://jaworski.aspweb.cz --> o mnie, i inne takie tam ....
Marcin A. Guzowski - 13-11-2006 00:46
g3 napisał(a): > Witam, > Czy ktos wie, jak z poziomu t-sql (nie Mangement Studio) usunac > wlasciwosc IDENTITY (autoikrementacja) kolumny? > Czyli jak zrobic cos takiego: > alter table <tabela> alter column <kolumna> <typ> NOIDENTITY ;-)
Niestety tak prosto się tego nie zrobi. SSEM/SSMS robi to poprzez tworzenie nowej tabeli, kopiowanie i dropa starej tabeli.
Z poziomu T-SQL można to trochę uprościć, ale tak czy inaczej musisz wykonać szereg kroków: - jeżeli kolumna, z której chcesz usunąć IDENTITY jest PK, to trzeba DROP CONSTRAINT... - dodanie nowej kolumny o typie zgodnym z kolumną IDENTITY, która nie jest IDENTITY - UPDATE tabela SET nowa_kolumna = stara_kolumna_z_IDENTITY - usunięcie kolumny z IDENTITY - zamiana nazwy utworzonej kolumny na nazwę usuniętej kolumny (jest do tego procedura sp_rename) - ew. stworzenie PK itd.
-- Pozdrawiam, Marcin Guzowski http://guzowski.info
g3 - 13-11-2006 00:46
dokladnie, do takego rozwiazania włanie doszedłem. Pozostaje jeszcze dodatkowo przywrocenie kolejnosci kolumn jesli bedzie sie korzystac z kluzul typu insert into select *
Pozdrawiam
Tomek
-- http://jaworski.aspweb.cz --> o mnie, i inne takie tam ....
Marcin A. Guzowski napisał(a): > g3 napisał(a): > > Witam, > > Czy ktos wie, jak z poziomu t-sql (nie Mangement Studio) usunac > > wlasciwosc IDENTITY (autoikrementacja) kolumny? > > Czyli jak zrobic cos takiego: > > alter table <tabela> alter column <kolumna> <typ> NOIDENTITY ;-) > > Niestety tak prosto się tego nie zrobi. > SSEM/SSMS robi to poprzez tworzenie nowej tabeli, > kopiowanie i dropa starej tabeli. > > Z poziomu T-SQL można to trochę uprościć, ale tak czy inaczej > musisz wykonać szereg kroków: > - jeżeli kolumna, z której chcesz usunąć IDENTITY jest PK, > to trzeba DROP CONSTRAINT... > - dodanie nowej kolumny o typie zgodnym z kolumną IDENTITY, > która nie jest IDENTITY > - UPDATE tabela SET nowa_kolumna = stara_kolumna_z_IDENTITY > - usunięcie kolumny z IDENTITY > - zamiana nazwy utworzonej kolumny na nazwę usuniętej kolumny > (jest do tego procedura sp_rename) > - ew. stworzenie PK itd. > > > -- > Pozdrawiam, > Marcin Guzowski > http://guzowski.info
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Zdalny =?ISO-8859-2?Q?dost=EAp_do_MSSQL_bez_zarz=B1dzani?==?ISO-8859-2?Q?a?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
[MSSQL 2k] - jak =?ISO-8859-2?Q?pod=B3=B1czy=E6_serwer_na_?==?ISO-8859-2?Q?porcie_innym_ni=BF_1433=3F?=
MSSQL Express czy Oracle Express
MSSQL 2005 i uruchamianie procedury o =?ISO-8859-2?Q?okre=B6lone?==?ISO-8859-2?Q?j_godzinie?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
[MSSQL 2000] =?ISO-8859-2?Q?wywo=B3anie_procesu_z_poziomu_?==?ISO-8859-2?Q?job=27a?=
[MSSQL 2K] =?ISO-8859-2?Q?Wp=B3yw_ustawie=F1_regionalnych_?==?ISO-8859-2?Q?serwera_na_zapytania?=
Pobierananie danych z innej bazy danych w MSSQL
Migracja MSSQL 2005 CTP na 2005 Express
zanotowane.pldoc.pisz.plpdf.pisz.pllisinski.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|