Discussion:
MSSQL i pełny dump bazy danych
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Jacek Osiecki
2007-07-12 09:17:37 UTC
Permalink
Witam,

Czy w MSSQL da się zrobić coś podobnego do mysqldump w MySQL?
Trochę googlałem i widzę jedynie propozycje tworzenia binarnych zrzutów
bazy - natomiast ja bym chciał po prostu stworzyć pełny dump do pliku
tekstowego, poprawić w kilku miejscach nazwę pola w tabeli i wrzucić nową
definicję bazy...

Obecnie gdy przerabiam np. nazwę pola w tabeli, to sprawdzane są jedynie jej
triggery - natomiast nie jest sprawdzana zgodność z triggerami innych tabel,
ani zgodność ze stworzonymi widokami. Jako że baza jest dosyć rozbudowana,
to sprawdzanie po takiej zmianie wszystkich możliwych kombinacji jest
conajmniej uciążliwe...

Pozdrawiam,
--
Jacek Osiecki ***@ceti.pl GG:3828944
"To nie logika, to polityka"
(c) Kabaret pod Wydrwigroszem 2006
Marcin A. Guzowski
2007-07-12 15:38:40 UTC
Permalink
Post by Jacek Osiecki
Witam,
Czy w MSSQL da się zrobić coś podobnego do mysqldump w MySQL?
Trochę googlałem i widzę jedynie propozycje tworzenia binarnych zrzutów
bazy - natomiast ja bym chciał po prostu stworzyć pełny dump do pliku
tekstowego, poprawić w kilku miejscach nazwę pola w tabeli i wrzucić nową
definicję bazy...
Po prostu chcesz wyskryptować definicje SQL wszystkich (lub prawie
wszystkich) obiektów w bazie.
Post by Jacek Osiecki
Obecnie gdy przerabiam np. nazwę pola w tabeli, to sprawdzane są jedynie jej
triggery - natomiast nie jest sprawdzana zgodność z triggerami innych tabel,
ani zgodność ze stworzonymi widokami. Jako że baza jest dosyć rozbudowana,
to sprawdzanie po takiej zmianie wszystkich możliwych kombinacji jest
conajmniej uciążliwe...
Jak najbardziej możesz wyskryptować wszystkie obiekty z bazy lub ich
poszczególne kategorie do jednego pliku.

Oczywiście nie podałeś wersji MSSQLa (bo i po co, prawda?), więc
odpowiem Ci też ogólnie, że da się to zrobić na wiele sposobów, zarówno
z poziomu T-SQL, jak i z poziomu narzędzi dostarczonych z odpowiednią
wersją silnika, jak i za pomocą narzędzi firm trzecich.
--
Pozdrawiam,
Marcin Guzowski
http://guzowski.info
Jacek Osiecki
2007-07-13 09:23:34 UTC
Permalink
Post by Marcin A. Guzowski
Post by Jacek Osiecki
Czy w MSSQL da się zrobić coś podobnego do mysqldump w MySQL?
Trochę googlałem i widzę jedynie propozycje tworzenia binarnych zrzutów
bazy - natomiast ja bym chciał po prostu stworzyć pełny dump do pliku
tekstowego, poprawić w kilku miejscach nazwę pola w tabeli i wrzucić nową
definicję bazy...
Po prostu chcesz wyskryptować definicje SQL wszystkich (lub prawie
wszystkich) obiektów w bazie.
No, w sumie to wszystkich :)
Post by Marcin A. Guzowski
Jak najbardziej możesz wyskryptować wszystkie obiekty z bazy lub ich
poszczególne kategorie do jednego pliku.
Oczywiście nie podałeś wersji MSSQLa (bo i po co, prawda?), więc
MSSQL 2005 Express, bodajże SP1.
Post by Marcin A. Guzowski
odpowiem Ci też ogólnie, że da się to zrobić na wiele sposobów, zarówno
z poziomu T-SQL, jak i z poziomu narzędzi dostarczonych z odpowiednią
wersją silnika, jak i za pomocą narzędzi firm trzecich.
Zakładam że w samym mssql express takich narzędzi nie ma - bo ani słowa o
tym w MSDNie, google też milczy... :(

Pozdrawiam,
--
Jacek Osiecki ***@ceti.pl GG:3828944
"To nie logika, to polityka"
(c) Kabaret pod Wydrwigroszem 2006
Marcin A. Guzowski
2007-07-13 16:50:50 UTC
Permalink
Post by Jacek Osiecki
MSSQL 2005 Express, bodajże SP1.
Zakładam że w samym mssql express takich narzędzi nie ma - bo ani słowa o
tym w MSDNie, google też milczy... :(
Gdybym był wredny, to bym Ci powiedział, że strasznie słaby z Ciebie
googler ;) A i nie mów, że o skryptowaniu ani słowa na MSDNnie.

W SQL Server Management Studio Express od wersji SP2 (to istotne)
dostępny jest Generate Script Wizard (prawoklik na bazie -> Tasks).
Powinien Ci wystarczyć, jeśli rozsądnie go użyjesz.
--
Pozdrawiam,
Marcin Guzowski
http://guzowski.info
Jacek Osiecki
2007-07-16 07:17:27 UTC
Permalink
Post by Marcin A. Guzowski
Post by Jacek Osiecki
MSSQL 2005 Express, bodajże SP1.
Zakładam że w samym mssql express takich narzędzi nie ma - bo ani słowa o
tym w MSDNie, google też milczy... :(
Gdybym był wredny, to bym Ci powiedział, że strasznie słaby z Ciebie
googler ;) A i nie mów, że o skryptowaniu ani słowa na MSDNnie.
Szukałem po mssql sql dump i podobnych - bez większych rezultatów...
Post by Marcin A. Guzowski
W SQL Server Management Studio Express od wersji SP2 (to istotne)
dostępny jest Generate Script Wizard (prawoklik na bazie -> Tasks).
Powinien Ci wystarczyć, jeśli rozsądnie go użyjesz.
No tak, to sporo wyjaśnia - miałem poprzednią wersję SMSE, a tam nawet nie
można było zobaczyć definicji tabeli :) Nie przypuszczałem że tak duże
zmiany się pojawią przy SP...

Dzięki!

Pozdrawiam,
--
Jacek Osiecki ***@ceti.pl GG:3828944
"To nie logika, to polityka"
(c) Kabaret pod Wydrwigroszem 2006
Marcin A. Guzowski
2007-07-16 18:55:16 UTC
Permalink
Post by Jacek Osiecki
Post by Marcin A. Guzowski
W SQL Server Management Studio Express od wersji SP2 (to istotne)
dostępny jest Generate Script Wizard (prawoklik na bazie -> Tasks).
Powinien Ci wystarczyć, jeśli rozsądnie go użyjesz.
No tak, to sporo wyjaśnia - miałem poprzednią wersję SMSE, a tam nawet nie
można było zobaczyć definicji tabeli :) Nie przypuszczałem że tak duże
zmiany się pojawią przy SP...
Mogą być całkiem zasadnicze.

Tak BTW ten SP2 to jeden z najgorszych Service Packów w historii SQL
Servera. Jeżeli Twój serwer ma być na produkcji, będziesz musiał tego
SP2 trochę połatać..

Nie przestrasz się, ale to przypomina brazylijską telenowelę:
http://strefa.guzowski.info/archives/44,2007,02,19.html
http://strefa.guzowski.info/archives/54,2007,04,06.html
http://strefa.guzowski.info/archives/56,2007,04,13.html
http://strefa.guzowski.info/archives/59,2007,05,26.html

a i to jeszcze nie wszystko. Np. teraz jest walka o to:
http://strefa.guzowski.info/archives/70,2007,07,13.html

co ciekawe ludzie z Microsoftu są bardziej przychylni żeby to uznać za
realny problem (bo akurat są go świadomi od jakiegoś czasu), niż
zachodni MVPs :) ale to niestety już czysta polityka.
--
Pozdrawiam,
Marcin Guzowski
http://guzowski.info
Jacek Osiecki
2007-09-16 21:31:30 UTC
Permalink
Post by Marcin A. Guzowski
Post by Jacek Osiecki
Post by Marcin A. Guzowski
W SQL Server Management Studio Express od wersji SP2 (to istotne)
dostępny jest Generate Script Wizard (prawoklik na bazie -> Tasks).
Powinien Ci wystarczyć, jeśli rozsądnie go użyjesz.
No tak, to sporo wyjaśnia - miałem poprzednią wersję SMSE, a tam nawet nie
można było zobaczyć definicji tabeli :) Nie przypuszczałem że tak duże
zmiany się pojawią przy SP...
Mogą być całkiem zasadnicze.
[ciach]

Jeszcze jedno pytanie...

Czy da się zrobić tak, żeby w wygenerowanym skrypcie były również dane
z tabel? Sam "zrzut" struktur jest trochę mało przydatny, niestety...

Szukałem odpowiednich opcji w SMSE, ale raczej niczego takiego nie ma...

Pozdrawiam,
--
Jacek Osiecki ***@ceti.pl GG:3828944
"To nie logika, to polityka"
(c) Kabaret pod Wydrwigroszem 2006
Rafal Franczak
2007-09-17 15:44:11 UTC
Permalink
Post by Jacek Osiecki
Post by Marcin A. Guzowski
Post by Jacek Osiecki
Post by Marcin A. Guzowski
W SQL Server Management Studio Express od wersji SP2 (to istotne)
dostępny jest Generate Script Wizard (prawoklik na bazie -> Tasks).
Powinien Ci wystarczyć, jeśli rozsądnie go użyjesz.
No tak, to sporo wyjaśnia - miałem poprzednią wersję SMSE, a tam nawet nie
można było zobaczyć definicji tabeli :) Nie przypuszczałem że tak duże
zmiany się pojawią przy SP...
Mogą być całkiem zasadnicze.
[ciach]
Jeszcze jedno pytanie...
Czy da się zrobić tak, żeby w wygenerowanym skrypcie były również dane
z tabel? Sam "zrzut" struktur jest trochę mało przydatny, niestety...
Szukałem odpowiednich opcji w SMSE, ale raczej niczego takiego nie ma...
Pozdrawiam,
Nie widziałem takiej opcji.
Możesz zrobić tak:
1. skrypt do utworzenia bazy
2. skrypt o którym pisałeś z "pustą" strukturą bazy

co masz przeciwko "dump database" ?
będziesz miał tą samą strukturę, te same dane ...
jeżeli chcesz część tabel to użyj bcp.

po przenosinach może być małe zdziwienie, gdy w tabelach są pola
z suser_id() albo z user_id()


Rafał
Jacek Osiecki
2007-09-22 11:28:08 UTC
Permalink
Post by Rafal Franczak
Post by Jacek Osiecki
Jeszcze jedno pytanie...
Czy da się zrobić tak, żeby w wygenerowanym skrypcie były również dane
z tabel? Sam "zrzut" struktur jest trochę mało przydatny, niestety...
Nie widziałem takiej opcji.
Na szczęście znalazłem coś takiego:

http://vyaskn.tripod.com/code.htm#inserts
Post by Rafal Franczak
1. skrypt do utworzenia bazy
2. skrypt o którym pisałeś z "pustą" strukturą bazy
Pusta struktura nawet OK, ale jednak szkoda że nie ma tego zrzutu danych ;)
Post by Rafal Franczak
co masz przeciwko "dump database" ?
To, że jest "zamkniętą skrzynką", zrzuca dane do jakiejś binarki nad którą
się nie ma żadnej kontroli.
Post by Rafal Franczak
będziesz miał tą samą strukturę, te same dane ...
jeżeli chcesz część tabel to użyj bcp.
Chodzi o to, że mam tę samą bazę w kilku miejscach. W jednym robię jakieś
zmiany, staram się je nanosić od razu do drugiej bazy itd. Tylko że czasami
niestety sobie o czymś zapomnę, albo nie jestem pewien czy dana zmiana była
przeniesiona do drugiej bazy...
Wtedy właśnie przydałby mi się zwykły tekstowy zrzut obu baz, razem z danymi
- i bym po prostu mógł sprawdzić gdzie dokładnie są różnice, nanieść
poprawki i zapodać na drugim serwerze.

Tak, wiem że to rzeźnia - ale tak to już jest przy równoczesnym rozwijaniu
i testowym wdrażaniu aplikacji :)

Generalnie dosyć mnie dziwi że mssql, choć świetny, ma bardzo wyraźne braki
w niektórych miejscach. Jeden to brak odpowiednika mysqldump, a inny brak,
który bardzo doskwiera to brak odpowiednika mysql'owego LIMIT. Żeby w mssql
zrobić np. stronicowanie wyników to idzie się zes*, a jeszcze gorzej jest
jak trzeba zrobić bibliotekę która ma być uniwersalna - m.in. właśnie dla
mysql i mssql...

Pozdrawiam,
--
Jacek Osiecki ***@ceti.pl GG:3828944
"To nie logika, to polityka"
(c) Kabaret pod Wydrwigroszem 2006
keczerad
2007-09-22 15:29:11 UTC
Permalink
Post by Jacek Osiecki
Witam,
Czy w MSSQL da się zrobić coś podobnego do mysqldump w MySQL?
Trochę googlałem i widzę jedynie propozycje tworzenia binarnych zrzutów
bazy - natomiast ja bym chciał po prostu stworzyć pełny dump do pliku
tekstowego, poprawić w kilku miejscach nazwę pola w tabeli i wrzucić nową
definicję bazy...
Obecnie gdy przerabiam np. nazwę pola w tabeli, to sprawdzane są jedynie jej
triggery - natomiast nie jest sprawdzana zgodność z triggerami innych tabel,
ani zgodność ze stworzonymi widokami. Jako że baza jest dosyć rozbudowana,
to sprawdzanie po takiej zmianie wszystkich możliwych kombinacji jest
conajmniej uciążliwe...
takiego dumpa nie ma, ale mozna uzyskac cos podobnego jest cos takiego
jak export danych z jednej bazy do drugiej. Dokladnie wszyskie dane
struktury, widoki, trigery i co tam jeszcze jest sie po prostu
"kopiuja". Opis sa na hostingach jak to uzyskac.
--
keczerad

http://www.e-mo.com.pl
sklep w (X)HTML wraz z modulem do Subiekta GT
Konner
2007-09-28 10:50:52 UTC
Permalink
Jak już masz strukturę ściągniętą to możesz zawsze napisać Cursor który
przepisze Tobie dane miedzy bazami danych
--
Konner
------------------------------------------------------------------------
Konner's Profile: http://forum.hotscripts.pl/member.php?userid=4349
View this thread: http://forum.hotscripts.pl/showthread.php?t=40656
Loading...