[MSSQL] problem z (od)tworzeniem BD ze skryptu
koli - 05-04-2007 00:04
[MSSQL] problem z (od)tworzeniem BD ze skryptu
Witam,
Mam MS SQL 2000 SP3, próbuję utworzyć kolejną bazę danych mającą identyczną strukturę jak źródłowa. W Enterprise Manager utworzyłem sobie skrypt generujący wszystkie obiekty dla bazy źródłowej (zaznaczyłem Generate script for all dependent objects). Utworzyłem nową pustą bazę i próbuję ten skrypt uruchamiać - i tu zonk ;-( przy uruchomieniu skryptu jest mnóstwo błędów "Invalid object ...". Sprawdziłem, wynikają one z tego, że obiekty nie są tworzone przez skrypt w odpowiedniej kolejności. Próbowałem ręcznie to poprawić w skrypcie ale dałem sobie na razie spokój (baza ma dość dużo obiektów i się trochę zamotałem jak przestawiałem kolejność ich tworzenia). Może coś zrobiłem źle ? Czy jest możliwość utworzenia takiego skryptu, który by się poprawnie uruchomił ? Jak to zrobić ? A może jakiś patch do tego jest?
Pozdrawiam -- koli
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Marcin A. Guzowski - 07-04-2007 00:03
koli napisał(a): > Witam, > > Mam MS SQL 2000 SP3, próbuję utworzyć kolejną bazę danych mającą identyczną > strukturę jak źródłowa. > W Enterprise Manager utworzyłem sobie skrypt generujący wszystkie obiekty dla > bazy źródłowej (zaznaczyłem Generate script for all dependent objects). > Utworzyłem nową pustą bazę i próbuję ten skrypt uruchamiać - i tu zonk ;-( > przy uruchomieniu skryptu jest mnóstwo błędów "Invalid object ...". > Sprawdziłem, wynikają one z tego, że obiekty nie są tworzone przez skrypt w > odpowiedniej kolejności. Próbowałem ręcznie to poprawić w skrypcie ale dałem > sobie na razie spokój (baza ma dość dużo obiektów i się trochę zamotałem jak > przestawiałem kolejność ich tworzenia). > Może coś zrobiłem źle ? > Czy jest możliwość utworzenia takiego skryptu, który by się poprawnie > uruchomił ? Jak to zrobić ? A może jakiś patch do tego jest?
Nie ma żadnych patchy, nie wymyślaj.
A musisz to robić skryptem? Taki sposób zawsze będzie mniej lub bardziej problematyczny. Najlepiej jest zbackupować bazę źródłową i odzyskać backup jako nową bazę (docelową). W razie potrzeby usuniesz tylko dane z utworzone bazy.
-- Pozdrawiam, Marcin Guzowski http://guzowski.info
Krzysztof Raczkowski - 07-04-2007 00:03
Marcin A. Guzowski napisał(a): > koli napisał(a): >> Witam, >> >> Mam MS SQL 2000 SP3, próbuję utworzyć kolejną bazę danych mającą >> identyczną >> strukturę jak źródłowa. >> W Enterprise Manager utworzyłem sobie skrypt generujący wszystkie >> obiekty dla >> bazy źródłowej (zaznaczyłem Generate script for all dependent objects). >> Utworzyłem nową pustą bazę i próbuję ten skrypt uruchamiać - i tu zonk >> ;-( >> przy uruchomieniu skryptu jest mnóstwo błędów "Invalid object ...". >> Sprawdziłem, wynikają one z tego, że obiekty nie są tworzone przez >> skrypt w >> odpowiedniej kolejności. Próbowałem ręcznie to poprawić w skrypcie ale >> dałem >> sobie na razie spokój (baza ma dość dużo obiektów i się trochę >> zamotałem jak >> przestawiałem kolejność ich tworzenia). >> Może coś zrobiłem źle ? >> Czy jest możliwość utworzenia takiego skryptu, który by się poprawnie >> uruchomił ? Jak to zrobić ? A może jakiś patch do tego jest? > > > Nie ma żadnych patchy, nie wymyślaj. >
Uwaga jest uzasadniona bo są bazy, które potrafią wygenerować skrypt zakładający wszystko jak trzeba w odpowiedniej kolejności :) Niech mi ktoś powie na co komu wyskryptowana baza w jednym nie małym pliku?
-- K. Raczkowski
Marcin A. Guzowski - 08-04-2007 00:02
Krzysztof Raczkowski napisał(a): >> Nie ma żadnych patchy, nie wymyślaj. >> > > Uwaga jest uzasadniona bo są bazy, które potrafią wygenerować skrypt > zakładający wszystko jak trzeba w odpowiedniej kolejności :)
Nie są to bazy, tylko narzędzia do nich. Istnieją też narzędzia do MSSQL (choćby ze stajni RedGate), które potrafią wygenerować globalnie spójny skrypt. Natomiast narzędzia standardowe dostarczone wraz z silnikiem w wersji 2000 nie służą do skryptowania baz - tylko obiektów (a to istotna różnica, co z resztą stało się problemem dla autora wątku). A tak btw skryptowanie obiektów w odpowiedniej kolejności wcale nie jest szczególnie trudne.
-- Pozdrawiam, Marcin Guzowski http://guzowski.info
koli - 11-05-2007 12:31
Na początku przepraszam za opóźnienie w odpowiedzi ... Nie jestem specem od MS SQL, zajmuję się problemem okazyjnie, więc jeżeli jakieś herezje tu piszę - wybaczcie ;-)
>Marcin A. Guzowski napisał(a): > Krzysztof Raczkowski napisał(a): >>> Nie ma żadnych patchy, nie wymyślaj. Wymyślam ? Uważam, że skoro w Enterprise Manager jest możliwość generowania skryptu z całego schematu bazy i EM umie generować obiekty z uwzględnieniem zależności to logicznym jest sądzić że powinien to zrobić w prawidłowej kolejności. IMHO jest to błąd w działaniu EM. Zdaniem Micro$oft chyba też, bo coś tam próbują poprawiać np. http://support.microsoft.com/kb/289551/ - niemniej jednak chyba się im nie za bardzo udało bo mam SP3 a problemy są nadal ...
Odnośnie pomysłu z backupem tak z ciekawości zapytam, czy jak zakładasz nowy pusty schemat bazy w MS SQL na gołym serwerze to robisz to z backupu a nie ze skryptu ? Przecież (przy odtwarzaniu bazy z backupu) żeby ją wyczyścić to się trzeba trochę narobić a i to nie wszystko (że nie wspomnę np o ustawianiu wartości dla autonumerowanych kolumn)
>> Uwaga jest uzasadniona bo są bazy, które potrafią wygenerować skrypt >> zakładający wszystko jak trzeba w odpowiedniej kolejności :) > > > Nie są to bazy, tylko narzędzia do nich. OK, EM też jest narzędziem, robiąc np. skrypt schematu bazy narzędziem Oracle Designer dostaję wszystko ładnie, w odpowiedniej kolejności ...
> Istnieją też narzędzia do MSSQL > (choćby ze stajni RedGate), które potrafią wygenerować globalnie spójny > skrypt. Testuję właśnie Quest Comparision Software for SQL Server - jak na razie mam obiecujące wyniki - mimo tego, że narzędzie nie jest dokładnie do tworzenia skryptów i ma parę wad. Ma za tą jedną ważną zaletę jak dla mnie - jest Freeware ! RedGate nie znam, ale sprawdzę co potrafi ...
> Natomiast narzędzia standardowe dostarczone wraz z silnikiem w > wersji 2000 nie służą do skryptowania baz - tylko obiektów (a to istotna > różnica, co z resztą stało się problemem dla autora wątku). A tak btw > skryptowanie obiektów w odpowiedniej kolejności wcale nie jest > szczególnie trudne. Hmm, skoro nie jest trudne to czemu Micro$oft sobie z tym nie radzi ? Masz na myśli jakieś "ręczne" działania. Baza, którą próbuję zeskryptować ma ponad 500 różnych obiektów i dlatego szukam narzędzia do tego.
Jak zdążyłem wytestować, problem z nieprawidłową kolejnością zeskryptowanych obiektów jest również gdy próbuje się wygenerować skrypt tylko kilku obiektów powiązanych zależnościami np. żeby przenieść zmiany na schemacie bazy z testowej na produkcyjną. A tu juz widzę problem, bo trzeba dziergać skrypt ręcznie, a to już mi się średnio podoba ...
Przy okazji mam pytanie o MS SQL 2005 bo nie miałem jeszcze do czynienia z tą wersją: Czy ktoś z Was próbował wygenerować skrypt ze schematu bazy w 2005 ? Czy w 2005 też są podobne problemy z kolejnością generowania obiektów w skrypcie ?
Pozdrawiam -- koli
Krzysztof Raczkowski - 11-05-2007 12:31
koli napisał(a): > Przy okazji mam pytanie o MS SQL 2005 bo nie miałem jeszcze do czynienia > z tą wersją: Czy ktoś z Was próbował wygenerować skrypt ze schematu bazy > w 2005 ? Czy w 2005 też są podobne problemy z kolejnością generowania > obiektów w skrypcie ? >
Moim zdaniem zrobili krok wstecz ... w MS SQL 2005 możesz skryptować wszystko do jednego pliku. Z tego co pamiętam (bo dawno tego nie robiłem) przed SP1 był problem z prawidłową kolejnością obiektów w skrypcie. Od jakiegoś czasu mam wyprodukowany własną 'rzemieślniczą' działalnością programik, który skryptuje obiekty osobno tak że można je wrzucić 'hurtem' do bazy nie przejmując się zależnościami :).
-- Pozdrawiam K. Raczkowski
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
mysql i mysql-front, problem
String line; if (line=="cos"){...}....problem
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
[postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?=
[oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?=
Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ]
[PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ?
[MySQL] Problem z zapisem danych w bazie danych
Problem z mysql - can't connect to MySQL/nietypowo...
zanotowane.pldoc.pisz.plpdf.pisz.pllunadance.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 |
|