[ms sql 2000] Replikacja - zmiana typu kolumny w tabeli ?
szaki - 17-05-2007 22:44
[ms sql 2000] Replikacja - zmiana typu kolumny w tabeli ?
Witam, W jaki sposób na bazie która jest replikowana zmienić typ kolumny w tabeli ? Przy dodawaniu/usuwaniu kolumny w tabeli są pomocne procedury - sp_repaddcolumn. A co zrobić gdy chcę zmienić typ kolumny utworzonej w tabeli, badz zwiekszyć wielkość znaków do wpisania (np. z varchara(50) do varchara(100))?
CZekam na wasze propozycje.
POzdrawiam Szaki
szaki - 17-05-2007 22:44
szaki napisał(a): > Witam, > W jaki sposób na bazie która jest replikowana zmienić typ kolumny w > tabeli ? Przy dodawaniu/usuwaniu kolumny w tabeli są pomocne procedury - > sp_repaddcolumn. > A co zrobić gdy chcę zmienić typ kolumny utworzonej w tabeli, badz > zwiekszyć wielkość znaków do wpisania (np. z varchara(50) do > varchara(100))? > > CZekam na wasze propozycje. > > POzdrawiam > Szaki
Z tego co wyczytałem w necie, to jedyne zrobie tego co opisuje powyżej to skasowanie subskrybcji i publikacji wprowadzenie zmian i stworzenie na nowo subskrybcji i publikacji. CZy nie znacie moze jakiegoś innego sposobu ? Na bazach MS server nie znam sie za dobrze, i nie wiem czym moze skutkować usunięcie subskrybcji, publikacji i jakie moga wystąpić problemy przy ich tworzeniu.
Szaki
Maciej Pilecki - 19-05-2007 00:01
"szaki" <ljag@gazeta.pl> wrote in message news:f2fnr1$6te$1@inews.gazeta.pl... > szaki napisał(a): > > Witam, > > W jaki sposób na bazie która jest replikowana zmienić typ kolumny w > > tabeli ? Przy dodawaniu/usuwaniu kolumny w tabeli są pomocne procedury - > > sp_repaddcolumn. > > A co zrobić gdy chcę zmienić typ kolumny utworzonej w tabeli, badz > > zwiekszyć wielkość znaków do wpisania (np. z varchara(50) do > > varchara(100))? > > > > CZekam na wasze propozycje. > > > > POzdrawiam > > Szaki > > Z tego co wyczytałem w necie, to jedyne zrobie tego co opisuje powyżej > to skasowanie subskrybcji i publikacji wprowadzenie zmian i stworzenie > na nowo subskrybcji i publikacji. > CZy nie znacie moze jakiegoś innego sposobu ? > Na bazach MS server nie znam sie za dobrze, i nie wiem czym moze > skutkować usunięcie subskrybcji, publikacji i jakie moga wystąpić > problemy przy ich tworzeniu. >
Problem polega na tym, że narzędzia, które umożliwiają zmianę typu danych kolumny (takie jak Enterprise Manager czy Management Studio) robią obejście, które polega na: założeniu nowej tabeli, przekopiowaniu danych, skasowaniu starej tabeli i zmianie nawy nowej tak aby ją podstawić pod starą. To oczywiście powoduje całą masę nieporządanych zjawisk, a w Twoim konkretnym wypadku wymaga usunięcia publikacji aby można było usunąć tabelę (potem trzeba oczywiście założyc nową publikacje na nowej tabeli).
Można to zrobić mądrzej, ręcznie, w T-SQLu. Z grubsza sekwencja kroków wygląda wtedy następująco: 1. EXEC sp_repldropcolumn -- tutaj parametry aby usunąć kolumnę z publikacji 2. ALTER TABLE Tabela ALTER COLUMN NazwaKolumny varchar(100) 3. EXEC sp_repladdcolumn --tutaj potrzebne parametry aby ponownie dodać kolumnę do publikacji
Dodam jeszcze, że to jest dość ryzykowna operacja i powodzenie nie jest gwarantowane. Coś się może rozsypać (nie napisałeś nawet jaki to rodzaj replikacji, więc nie będę gdybał). W razie czego trzeba wrócić do opcji skasowania i odtworzenia publikacji.
Powodzenia! Maciej Pilecki
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
=?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
=?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
[oracle] - Oracle SQL Developer - co to jest SID?
=?ISO-8859-2?Q?[Oracle]_Wywo=B3anie_skryptu_sh_z_PL/SQL-a=3F=3F?=
[oracle] Baza danych do kursy Introduction to Oracle9i:PL/SQL ? Skąd ją pobrać ?
zanotowane.pldoc.pisz.plpdf.pisz.plred-hacjenda.opx.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 |
|